我希望能够在我的DTSX包中进行SQL查询,并希望能够提供某种类型的提示来更新空列的值。看看我下面的内容:
UPDATE SF1411
SET [QuoteNumber] = '123456'
, [ItemNumber] = '123654-100'
, [DeleteItem] = 'NO'
WHERE [QuoteNumber] = '0'
我希望能够提示您输入QuoteNumber和ItemNumber,然后根据需要更新脚本。这是可能的,如果可以,我该怎么办?
答案 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包将在运行时加载该值。