2016-09-02 1 views
1

Angenommen, wir haben zwei Datenbanken, db_1 und db_2.Übertragen von SQL-Objekten mit ssis nach dem angegebenen Namen

Es gibt eine Tabelle namens 'T1' in db_1, jetzt brauche ich ein Paket in SSIS, die nach Namen sql Objekte fragen wird. Wenn ich 'T1' wähle, werden die Daten nach db_2 übertragen.

Ich weiß nicht, ob es möglich ist.

+0

Ihr Thema und Anforderung scheint anders. Sie möchten Objekt (Tabelle/View/Fn) oder Daten übertragen? – p2k

Antwort

0

Im Allgemeinen ist SSIS nicht für den interaktiven Modus gedacht. Jede Benutzereingabe wird entweder als Konfigurationseinstellung oder Umgebungsvariable oder als Wert in einer anderen Tabelle eingeführt.

Alternativ können Sie Eingabewerte auch außerhalb des SSIS-Pakets eingeben und erfassen und dann das SSIS-Paket in C# oder ASP.Net oder einer anderen interaktiven Plattform ausführen.

Das heißt, , wenn Sie zur Eingabe auffordern müssen und es verwenden,, wie es durch Instanziieren und Anzeigen eines Formulars in einer Skriptkomponente zu tun ist.

Erstellen Sie eine Variable mit dem entsprechenden Bereich namens tableName im Paket. Verwenden Sie dann den folgenden Code (ändern Sie ihn nach Bedarf), um den Wert tableName auf den Wert festzulegen, den der Benutzer eingibt. Schließlich verwenden Sie die gleiche tableName Variable in Ihrem Kontrollfluss, um die Daten zu kopieren.

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

public void Main() 
{ 
    submitButton.Text = "Enter source table name"; 
    submitButton.Width = 300; 
    submitButton.Height = 80; 
    submitButton.Click += new EventHandler(submitButton_Click); 
    tableNameTextBox.Name = "Input"; 
    frm.Controls.Add(tableNameTextBox); 
    frm.Controls.Add(submitButton); 
    frm.ShowDialog(); 
    MessageBox.Show(Dts.Variables["tableName"].Value.ToString()); 


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

void submitButton_Click(object sender, EventArgs e) 
{ 
    Dts.Variables["tableName"].Value = tableNameTextBox.Text; 
    frm.Close(); 
} 

Ref: https://stackoverflow.com/a/4121557/325521

Verwandte Themen