以下查询是否会插入与子查询的结果集中的行一样多的行?如果没有,我如何插入n行,其中n是子查询的结果集中的行数?
INSERT INTO A (x, y)
VALUES (@x, SELECT B.z FROM B)
@x=5
答案 0 :(得分:3)
没有。它最多只插入一行。如果要插入多行,则需要类似
的内容INSERT INTO A (x,y) SELECT @X, B.z FROM b
请注意,没有values
子句,并且@x已集成到SELECT
查询中
答案 1 :(得分:3)
如果您想获得所有值,可以将其修改为:
INSERT INTO A (x, y)
SELECT @x, B.z
FROM B
答案 2 :(得分:2)
摆脱VALUES条款。您的查询变为:
INSERT INTO A (x, y) SELECT @X, B.z FROM B
答案 3 :(得分:2)
以这种方式试试。
INSERT INTO A
(x, y)
SELECT @x, B.z
FROM B
答案 4 :(得分:1)
DECLARE @X int = 5
INSERT INTO A
(
x,
y
)
SELECT
@X,
B.Z
FROM B
答案 5 :(得分:1)
它不会起作用。您在使用多行查询的聚合函数时犯了同样的错误