我有两张桌子。一个表(A)具有n行数据而另一个表(B)为空。我想在表B中插入n行,在表A中每行插入1行。表B中将包含表A中的几个字段,包括表A中的外键。最后我想在B中有一行对于A中的每一行。如何编写一些TSQL来执行此操作?
答案 0 :(得分:4)
INSERT INTO TableB (ColA, ColB, ColC)
SELECT ColA, ColB, ColC
FROM TableA
Pinal Dave在这里写了一篇关于其他替代方法的精彩文章:
答案 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
如果您想要更合适的示例,可以向我提供您想要输入的特定表名和列。