我有一个表变量,我想插入一个联合查询。联合查询运行正常,但我似乎无法使插入工作(语法错误)
INSERT INTO @table
(a,
b,
c,
d)
VALUES
(SELECT
a,
b,
c,
d
FROM table1
UNION
SELECT
a,
b,
c,
d
FROM table2)
这应该有用吗?如果其他地方有问题,我可以发布我的真实代码!
我在第一个SELECT
上遇到语法错误答案 0 :(得分:8)
INSERT INTO @table(a,b,c,d)
SELECT a,b,c,d
FROM table1
UNION
SELECT a,b,c,d
FROM table2
使用SELECT语句插入数据时,不需要使用Values子句。因此我从它中删除了VALUES
位,只是简单地从两个SELECT查询中返回一行UNION。
Sql server支持INSERT语句的语法,如
INSERT INTO Table_Name(Col1, COl2. Col3...)
SELECT Col1, COl2. Col3...
FROM Other_Table_Name
这会将select语句返回的结果集插入到目标表中。在您的情况下,Result是两个选择的UNION,因此它与单个选择没有任何不同。
答案 1 :(得分:0)
在这种情况下不需要“VALUES”
INSERT INTO @table (a, b, c, d)
SELECT a, b, c, d FROM table1
UNION
SELECT a, b, c, d FROM table2