将n行插入表中

时间:2012-11-20 15:12:24

标签: sql-server tsql

我有两张桌子。一个表(A)具有n行数据而另一个表(B)为空。我想在表B中插入n行,在表A中每行插入1行。表B中将包含表A中的几个字段,包括表A中的外键。最后我想在B中有一行对于A中的每一行。如何编写一些TSQL来执行此操作?

4 个答案:

答案 0 :(得分:4)

INSERT INTO TableB (ColA, ColB, ColC)
SELECT ColA, ColB, ColC
FROM TableA

Pinal Dave在这里写了一篇关于其他替代方法的精彩文章:

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

答案 1 :(得分:1)

如果我理解正确,您需要使用类似SELECT INTO的内容: http://www.w3schools.com/sql/sql_select_into.asp

答案 2 :(得分:1)

你可以这样做:

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

答案 3 :(得分:1)

这可以通过使用以下查询来完成。

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

如果您想要更合适的示例,可以向我提供您想要输入的特定表名和列。