2017-06-21 32 views
1

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> 

答えて

2

私は、SSISについてほとんど何も知らないが、私はこれを行うには 簡単なことであることを疑います。

申し訳ありませんが、簡単なことではありません。複数の環境でSSISの接続をパラメータ化する方法は、構成ファイルとパッケージ変数を使用する方法です。これを行う最も簡単な方法は、Visual Studioでプロジェクトを操作することです。

何らかの理由でVisual Studioを使用できない場合は、テキストエディタで直接パッケージのxmlaを編集できますが、それを行う方法を説明するチュートリアルや、そしてそれをやって、それをデバッグすることを幸運にしてください。おそらく、構成を使用するパッケージのxmlaを見て、モデルがあればそれをモデルとして使用するかもしれません。

+0

パッケージを保存し、パッケージ変数を使用することができます。パッケージ変数は設定ファイルによって設定できます... –

+0

これは私を悲しくします。私はSSISを使用せず、必要なデータ移行を処理するためにSQLプロジェクトに「展開後」スクリプトを使用します。 – Andy

関連する問題