SSISを使用して2つのSQL Serverデータベース間でデータを一括して転送したいと考えています。 SQL Serverの[データのインポート]ウィザードの出力をパラメータ化し、他の環境で実行するにはどうすればできますか?SSIS DSTXをパラメータ化して実行してデータをインポートする
SQL Serverでは、接続先データベースを右クリックして[データのインポート]をクリックし、ウィザードを実行して[SSISパッケージを保存する]オプションを選択しました。これは正常に動作し、ウィザードを実行したサーバー上の特定のデータベース間で転送を行う.dstxファイルを作成しました。今私は、データソースとソースと宛先データベースを他の環境で実行できるようにパラメータ化するために.dstxをカスタマイズしたいと思います。次に、コマンドラインから.dstxパッケージを実行できるようにしたいと思います。私はSSISについてほとんど何も知らないので、両方のステップで苦労していますが、これは簡単なことではないかと考えています。
また、コマンドラインから "dtexec.exe"を実行しようとすると、バージョン3がバージョン8などを実行できないというエラーが発生しました(PackageFormatVersionはXML内で8に設定されています)。
Visual StudioでSSISプロジェクトを作成せずにこれを行うには、どのような方法が最適ですか?私は単純にXMLを直接更新し、EXEがそれを実行し、接続文字列のパラメータ、または接続文字列内の個々の変数を受け入れることができるものを呼び出したいと思います。私は正常に.dstxファイルをダブルクリックしてGUIで実行することができますが、コマンドラインからもSQL Agentジョブを作成せずに同じことをしたいと思います。
ここでは、パラメータ化する必要のある.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プロジェクトに「展開後」スクリプトを使用します。 – Andy