以下查詢是否會插入與子查詢的結果集中的行相同數量的行?如果沒有,我怎樣才能插入n行,其中n是子查詢的結果集中的行數?SELECT語句作爲INSERT INTO語句中的子查詢
INSERT INTO A (x, y)
VALUES (@x, SELECT B.z FROM B)
@x=5
以下查詢是否會插入與子查詢的結果集中的行相同數量的行?如果沒有,我怎樣才能插入n行,其中n是子查詢的結果集中的行數?SELECT語句作爲INSERT INTO語句中的子查詢
INSERT INTO A (x, y)
VALUES (@x, SELECT B.z FROM B)
@x=5
不會。它只會插入最多1行。如果你想插入多行,你需要像
INSERT INTO A (x,y) SELECT @X, B.z FROM b
注意,有沒有values
條款,以及@x已經融入了SELECT
查詢
擺脫VALUES子句。您的查詢變爲:
INSERT INTO A (x, y) SELECT @X, B.z FROM B
試試這種方式。
INSERT INTO A
(x, y)
SELECT @x, B.z
FROM B
DECLARE @X int = 5
INSERT INTO A
(
x,
y
)
SELECT
@X,
B.Z
FROM B
如果你想獲得的所有值,您可以將其修改爲:
INSERT INTO A (x, y)
SELECT @x, B.z
FROM B
這是行不通的。您在多行查詢中使用聚合函數時犯的錯誤相同
您是否嘗試過? – AllenG 2011-05-24 18:46:06