根据给定名称使用ssis传输SQL对象

时间:2016-09-02 05:45:49

标签: sql-server ssis

假设我们有两个数据库,db_1和db_2。

在db_1中有一个名为'T1'的表,现在,我需要SSIS中的一个包,它会询问名称sql对象。如果我选​​择'T1',数据将被转移到db_2。

我不知道是否有可能。

1 个答案:

答案 0 :(得分:0)

通常SSIS不适用于交互模式。任何用户输入都可以作为配置设置或环境变量引入,也可以作为其他表中的值引入。

或者,您也可以在SSIS包之外提示和捕获输入值,然后在C#或ASP.Net或任何其他交互式平台中执行SSIS包。

那就说 如果你必须提示输入并使用它 ,那么这样做的方法是在脚本组件<中实例化并显示一个表单/ strong>即可。

在包中名为tableName的适当范围内创建变量。然后使用下面的代码(根据需要进行修改)将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