我有两张桌子。一张表 (A) 有 n 行数据,另一张表 (B) 为空。我想在表 B 中插入 n 行,表 A 中的每一行插入 1 行。表 B 中将包含表 A 中的几个字段,包括表 A 中的外键。最后我想要 B 中的一行对于 A 中的每一行。我怎样才能编写一些 TSQL 来做到这一点?
问问题
580 次
4 回答
4
INSERT INTO TableB (ColA, ColB, ColC)
SELECT ColA, ColB, ColC
FROM TableA
Pinal Dave 在这里写了一篇关于其他替代方法的精彩文章:
于 2012-11-20T15:14:50.343 回答
1
如果我理解正确,您需要使用类似SELECT INTO
:
http ://www.w3schools.com/sql/sql_select_into.asp
于 2012-11-20T15:15:08.467 回答
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;
于 2012-11-20T15:15:30.093 回答
1
这可以通过使用以下查询来完成。
INSERT INTO B(PriKey, RelationshipWithA, Description)
SELECT ROW_NUMBER(), A.PrimaryKey, A.Description
FROM A
如果您想要一个更充分的示例,您可以向我提供您希望输入的特定表名和列。
于 2012-11-20T15:16:26.360 回答