【问题标题】:How do I prompt for input from an SSIS package?如何提示来自 SSIS 包的输入?
【发布时间】:2010-11-05 15:20:21
【问题描述】:

我希望能够在我的 DTSX 包中进行 sql 查询,并且我希望能够有某种提示来更新空列的值。看看我在下面有什么:

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

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

【问题讨论】:

    标签: sql ssis


    【解决方案1】:

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

        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 命令的初始组件。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 我可以使用 SQL 查询而不是 SSIS 包吗?
      • 您可以在 SQL Server Management Studio 的查询编辑器中运行 UPDATE。默认情况下,它不会提示您输入值。但是,您可以将查询创建为模板脚本。在这里查看更多msdn.microsoft.com/en-us/library/ms179334.aspx
      猜你喜欢
      • 2016-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-14
      • 1970-01-01
      相关资源
      最近更新 更多