2010-11-05 20 views
9

Je veux être capable d'avoir une requête sql dans mon paquet DTSX et je veux être capable d'avoir une sorte d'invite pour mettre à jour la valeur d'une colonne null. Voir ce que j'ai ci-dessous:Comment puis-je demander une entrée à partir d'un package SSIS?

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

Je veux être en mesure d'être invité à la QuoteNumber et ItemNumber, alors la mise à jour du script au besoin. Est-ce possible et si oui, comment puis-je le faire?

Répondre

7

Ceci peut être réalisé comme ci-dessous: Ce sera dans votre composant de script intial.

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(); 
    } 

Cela devrait être le composant initial dans votre package pour définir la valeur de la variable ou construire vous commande SQL.

2

En général, un package SSIS n'est pas utilisé de manière interactive. Votre solution la plus propre est une solution personnalisée qui obtient l'entrée de l'utilisateur, puis lance le package SSIS.

Une alternative plus simple consiste à utiliser des configurations de package. Vous pouvez stocker l'entrée de l'utilisateur dans un emplacement externe (fichier XML, base de données SQL Server et autres) et le package SSIS chargera la valeur lors de l'exécution.

+0

Pourrais-je faire cela avec une requête SQL plutôt qu'avec un pack SSIS? – GabrielVa

+0

Vous pouvez exécuter la mise à jour dans SQL Server Management Studio, éditeur de requête. Il ne vous demande pas vos valeurs par défaut. Mais, vous pouvez créer votre requête en tant que script de modèle. Vérifiez ici pour plus http://msdn.microsoft.com/en-us/library/ms179334.aspx. – bobs