/ / Einfügen von n Zeilen in eine Tabelle - sql-server, tsql

Einfügen von n Zeilen in eine Tabelle - sql-server, tsql

Ich habe zwei Tische. Eine Tabelle (A) enthält n Datenzeilen und die andere Tabelle (B) ist leer. Ich möchte n Zeilen in Tabelle B einfügen, 1 Zeile für jede Zeile in Tabelle A. Tabelle B enthält einige Felder aus Tabelle A, einschließlich eines Fremdschlüssels aus Tabelle A. Am Ende möchte ich eine Zeile in B für jede Zeile in A. Wie kann ich dazu TSQL schreiben?

Antworten:

4 für die Antwort № 1
INSERT INTO TableB (ColA, ColB, ColC)
SELECT ColA, ColB, ColC
FROM TableA

Pinal Dave hat hier einen großartigen Artikel über andere alternative Methoden geschrieben:

http://blog.sqlauthority.com/2007/08/15/sql-server-insert-data-from-one-table-to-another-table-insert-into-select-select-into-table/


1 für die Antwort № 2

Wenn ich Sie richtig verstanden habe, müssen Sie so etwas wie SELECT INTO: http://www.w3schools.com/sql/sql_select_into.asp


1 für die Antwort № 3

Du kannst das:

;WITH CTE
AS
(
SELECT *, ROW_NUMBER() OVER(ORDER BY PrimaryKey) row_num
FROM tableA
)
INSERT INTO Tableb(...)
SELECT ...
FROM CTE
WHERE row_num = 1;

1 für die Antwort № 4

Dies kann mithilfe der folgenden Abfrage durchgeführt werden.

INSERT INTO B(PriKey, RelationshipWithA, Description)
SELECT ROW_NUMBER(), A.PrimaryKey, A.Description
FROM A

Wenn Sie ein angemesseneres Beispiel wünschen, können Sie mir bestimmte Tabellennamen und Spalten angeben, die Sie eingeben möchten.