使用union插入表变量

fra*_*ais 1 sql union sql-server-2008

我有一个表变量,我想插入一个联合查询.联合查询运行正常,但我似乎无法使插入工作(语法错误)

INSERT INTO @table

(a,
b,
c,
d)

VALUES

(SELECT
       a,
       b,
       c,
       d 
FROM table1

UNION

SELECT
       a,
       b,
       c,
       d 
FROM table2)
Run Code Online (Sandbox Code Playgroud)

这应该有用吗?如果其他地方有问题,我可以发布我的真实代码!

我在第一个SELECT上遇到语法错误

M.A*_*Ali 8

INSERT INTO @table(a,b,c,d)
SELECT  a,b,c,d 
FROM   table1

UNION

SELECT a,b,c,d 
FROM table2
Run Code Online (Sandbox Code Playgroud)

使用SELECT语句插入数据时,不需要使用Values子句.因此,我已经删除了VALUES它,只是简单地从两个SELECT查询返回一行UNION.

Sql server支持INSERT语句的语法

INSERT INTO Table_Name(Col1, COl2. Col3...)
SELECT Col1, COl2. Col3...
FROM Other_Table_Name
Run Code Online (Sandbox Code Playgroud)

这会将select语句返回的结果集插入到目标表中.在您的情况下,Result是两个选择的UNION,因此它与单个选择没有任何不同.