2010-11-05 47 views
9

我想能夠在我的DTSX包中有一個SQL查詢,我想能夠有某種提示來更新空列的值。看看我有什麼:如何提示從SSIS包輸入?

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

我想能夠被提示輸入QuoteNumber和ItemNumber,然後根據需要更新腳本。這是可能的,如果是這樣,我該怎麼做?

回答

7

可以這樣做:這將在您的初始腳本組件。

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包將在運行時加載該值。

+0

我可以用SQL查詢而不是SSIS包來做這件事嗎? – GabrielVa 2010-11-05 17:00:11

+0

您可以在SQL Server Management Studio查詢編輯器中運行UPDATE。它不會默認提示您的值。但是,您可以將您的查詢創建爲模板腳本。點擊此處查看http://msdn.microsoft.com/en-us/library/ms179334.aspx。 – bobs 2010-11-05 17:54:45