一、開啟 SQL Server Business Intelligence Development Studio
1.建立一個Integration Services 專案
2.從工具箱中拉一個 傳送資料庫工作 控制項
3.點擊控制項右鍵 > 編輯
4.選 資料庫 > 連接 新增連接 設定來源及目的地
5.設定完成後 將專案中的 Package.dtsx 檔案複製到自訂的位置
二、開啟 Microsoft Visual Studio 2008
1.建立一個 ConsoleApplication 專案
2.加入參考 Microsoft.SQLServer.ManagedDTS
3.加入程式碼:
using System;
namespace ConsoleApplication1
{
class Program
{
private enum PackageExecutionResult
{
PackageSucceeded,
PackageFailed,
PackageCompleted,
PackageWasCancelled
}
static void Main(string[] args)
{
string dtsxpath = @"C:\Users\shawn\Desktop\SSIS_test\Package.dtsx"; Microsoft.SqlServer.Dts.Runtime.Application app = new Microsoft.SqlServer.Dts.Runtime.Application();
Microsoft.SqlServer.Dts.Runtime.Package pkg = app.LoadPackage(dtsxpath, null); Microsoft.SqlServer.Dts.Runtime.Variables vir = pkg.Variables;
int i = (Int32)pkg.Execute(null, vir, null, null, null);
Console.WriteLine((PackageExecutionResult)i);
Console.WriteLine("-----作業結束-----");
Console.ReadKey();
}
}
}
修改程式碼,加入錯誤報告:
using System;
using Microsoft.SqlServer.Dts.Runtime;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
MyEventListener eventListener = new MyEventListener();
string pkgLocation = @"D:\Package.dtsx";
Application app = new Application();
Package pkg = app.LoadPackage(pkgLocation, eventListener);
DTSExecResult pkgResults = pkg.Execute(null, null, eventListener, null, null);
Console.WriteLine(pkgResults.ToString());
Console.WriteLine("-----作業結束-----");
Console.ReadKey();
}
}
class MyEventListener : DefaultEvents
{
public override bool OnError(DtsObject source, int errorCode, string subComponent, string description, string helpFile, int helpContext, string idofInterfaceWithError)
{
// Add application-specific diagnostics here.
Console.WriteLine("Error in {0}/{1} : {2}", source, subComponent, description);
return false;
}
}
}
4.執行專案
轉PO自:http://www.clarkrabbit.net/2008/07/tricks-needing-attention-for-ssis.html
應該很多人都有遇過在建立 SSIS (Microsoft SQL Server 2005 Integration Services )封裝的時候無法正確執行的困擾吧。 Clark 第一次在用 BIDS (Business Intelligence Development Studio) 建立 SSIS 也遇到也這樣的問題。而且即時上網搜尋了一堆文章之後仍然有時不能正確的把做好的SSIS package 放到其他 Server 上或是 SQL Server 中執行。
當然的決定是先在本機上做,跑排程執行。但是畢竟這樣不是最終的解決之道。只是 clark 當時沒空再去解決這個問題只好先放著。所幸最近 clark 在做其他功能的 SSIS ,正好又有時間測試所以終於找到一個可以成功的 roadmap 。
話不多說,clark 整理出幾個注意事項,請大家在做的時候注意這幾點,相信大家都可以做出可以正確運作的 SSIS package。
- 第一次建立 SSIS 專案時,不要想太多,照要執行的流程做下去就對了,也不要急著設定封裝組態檔(Configurations)什麼的。
- 等專案都建完而且可以執行以後,請設定封裝屬性將 ProtectionLevel 設為DontSaveSensitive。
- 建立封裝組態檔 -> 啟用封裝組態 -> 加入 -> 直接指定組態設定 -> 瀏覽 -> 選擇要儲存的組態檔名 -> 存檔 -> 下一步 -> 勾選 "連接管理員" -> 將"連接管理員"下的所有子節點點開,勾掉 "ProtectionLevel" 這一項(假設你有4個 db connection就點掉4次) -> 其他 "變數"、 "Properties"、"可執行檔"都不勾選(除非真的有特別必要,之後再另行測試) ->按下一步 -> 按"完成" -> 關閉
- 請注意如果每次有更動到"連接管理員"裡的設定,最好刪掉組態檔重做一次,以免出現問題。
- 最後用記事本打開.dtsConfig,裡面會記錄你的connection帳號,但沒有密碼。請搜尋 "Password" 關鍵字,在後面一點會有 "<ConfiguredValue></ConfiguredValue>",請在中間加上你的密碼。重覆搜尋直到所有 password都設定好為止。
- 回到BIDS裡的SSIS專案中執行一次看看,這時會使用.dtsConfig裡的設定去執行SSIS,只要運作中間沒有問題即表示dtsConfig設定正確,可以將SSIS連同dtsConfig一起放到server上去執行囉
看到一堆文字說明,大家想必很暈吧,clark 之後會再將設定說明圖檔補上,讓大家少暈一點囉。 可以參考的相關文件: