我想使用SSIS在2個SQL Server數據庫之間傳輸大量數據。 如何參數化SQL Server「導入數據」嚮導的輸出並執行它以在其他環境中運行?參數化並執行用於數據導入的SSIS DSTX
在SQL Server中,我右鍵單擊目標數據庫並單擊「導入數據」,然後通過嚮導並選擇「Save SSIS Package」選項。這工作得很好,並生成一個.dstx文件來執行我運行嚮導的服務器上的特定數據庫之間的傳輸。現在我想定製.dstx以便參數化數據源以及源數據庫和目標數據庫,以便能夠在其他環境中運行。然後我希望能夠從命令行執行.dstx包。由於我幾乎對SSIS幾乎一無所知,所以我正在爲這兩個步驟而努力,但我懷疑這應該是一件容易的事情。
另外,試圖從命令行中運行「dtexec.exe」會導致版本3無法運行版本8或某些類似的錯誤(PackageFormatVersion在XML中設置爲8)?
無需在Visual Studio中創建SSIS項目即可完成此操作的最佳方法是什麼?我想直接更新XML並調用任何EXE能夠執行它並接受連接字符串的參數或連接字符串內的單個變量。我能夠成功地雙擊.dstx文件並使用GUI來運行它,但是我希望能夠從命令行執行相同的操作,而無需創建SQL代理作業。
以下是需要參數化的.dstx文件中的XML節點。
<DTS:ConnectionManagers>
<DTS:ConnectionManager
DTS:refId="Package.ConnectionManagers[DestinationConnectionOLEDB]"
DTS:CreationName="OLEDB"
DTS:DTSID="{72C15889-EC1F-4BFA-A704-7562C68B2463}"
DTS:ObjectName="DestinationConnectionOLEDB">
<DTS:ObjectData>
<DTS:ConnectionManager
DTS:ConnectionString="Data Source=localhost;Initial Catalog=DestinationDatabase;Provider=SQLNCLI11;Integrated Security=SSPI;Auto Translate=false;" />
</DTS:ObjectData>
</DTS:ConnectionManager>
<DTS:ConnectionManager
DTS:refId="Package.ConnectionManagers[SourceConnectionOLEDB]"
DTS:CreationName="OLEDB"
DTS:DTSID="{B1415B25-61D6-4202-9BC6-CA59B358B766}"
DTS:ObjectName="SourceConnectionOLEDB">
<DTS:ObjectData>
<DTS:ConnectionManager
DTS:ConnectionString="Data Source=localhost;Initial Catalog=SourceDatabase;Provider=SQLNCLI11;Integrated Security=SSPI;Auto Translate=false;" />
</DTS:ObjectData>
</DTS:ConnectionManager>
</DTS:ConnectionManagers>
您可以保存包並使用包變量。包變量可以通過配置文件來設置... –
這讓我很難過。我只是不使用SSIS,然後在我的SQL Project中使用「post deployment」腳本來處理所需的數據遷移。 – Andy