2016-09-02 5 views
1

db_1とdb_2の2つのデータベースがあるとします。与えられた名前に従ってssisを使用してSQLオブジェクトを転送する

db_1に 'T1'という名前のテーブルがあります。SSISでsqlオブジェクトの名前を尋ねるパッケージが必要です.'T1 'を選択すると、データはdb_2に転送されます。

可能かどうかわかりません。

+0

あなたの主題と要件が異なるようです。あなたはオブジェクト(テーブル/ビュー/ Fn)またはデータを転送したいですか? – p2k

答えて

0

一般に、SSISは対話モードで使用するためのものではありません。すべてのユーザー入力は、構成設定または環境変数として、または他の表の値として導入されます。

また、SSISパッケージの外部で入力値をプロンプトしてキャプチャし、C#またはASP.Netまたは他の対話型プラットフォームでSSISパッケージを実行することもできます。

述べ、あなたが入力を要求し、それをを使用する必要がある場合は、それを行うための方法は、スクリプトコンポーネントでフォームをインスタンス化して表示することです。

パッケージ内のtableNameという適切なスコープで変数を作成します。次に、以下のコードを使用して(必要に応じて変更する)、変数の値をユーザが入力した値に設定します。最後に、コントロールフロー内の同じtableName変数を使用して、データをコピーします。

System.Windows.Forms.Form frm = new Form(); 
TextBox  = new TextBox(); 
Button submitButton = new Button(); 

public void Main() 
{ 
    submitButton.Text = "Enter source table name"; 
    submitButton.Width = 300; 
    submitButton.Height = 80; 
    submitButton.Click += new EventHandler(submitButton_Click); 
    tableNameTextBox.Name = "Input"; 
    frm.Controls.Add(tableNameTextBox); 
    frm.Controls.Add(submitButton); 
    frm.ShowDialog(); 
    MessageBox.Show(Dts.Variables["tableName"].Value.ToString()); 


    Dts.TaskResult = (int)ScriptResults.Success; 
} 

void submitButton_Click(object sender, EventArgs e) 
{ 
    Dts.Variables["tableName"].Value = tableNameTextBox.Text; 
    frm.Close(); 
} 

参考:https://stackoverflow.com/a/4121557/325521

関連する問題