如何从SSIS包中提示输入?

时间:2010-11-05 15:20:21

标签: sql ssis

我希望能够在我的DTSX包中进行SQL查询,并希望能够提供某种类型的提示来更新空列的值。看看我下面的内容:

UPDATE  SF1411
SET     [QuoteNumber]   = '123456'
    ,   [ItemNumber]    = '123654-100'
    ,   [DeleteItem]    = 'NO'
WHERE   [QuoteNumber]   = '0'

我希望能够提示您输入QuoteNumber和ItemNumber,然后根据需要更新脚本。这是可能的,如果可以,我该怎么办?

2 个答案:

答案 0 :(得分:9)

这可以通过以下方式实现:这将在您的初始脚本组件中。

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

    public void Main()
    {
        inputset.Text = "Set Variable Value";
        inputset.Width = 200;
        inputset.Height = 100;
        inputset.Click += new EventHandler(inputset_Click);
        txt.Name = "Input";
        frm.Controls.Add(txt);
        frm.Controls.Add(inputset);
        frm.ShowDialog();
        MessageBox.Show(Dts.Variables["Value1"].Value.ToString());


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

    void inputset_Click(object sender, EventArgs e)
    {
        Dts.Variables["Value1"].Value = Convert.ToInt32(txt.Text);
        frm.Close();
    }

这应该是包中用于设置变量值或构造SQL命令的初始组件。

答案 1 :(得分:2)

通常,不会以交互方式使用SSIS包。您最干净的解决方案是获取用户输入的自定义解决方案,然后启动SSIS包。

更简单的替代方法是使用包配置。您可以将用户输入存储在外部位置(XML文件,SQL Server数据库等),SSIS包将在运行时加载该值。