2

我的程序中有一个临时表;我试图从这样的选择语句中插入数据:

INSERT INTO #temptable
SELECT fee, expense, total FROM invoice 
UNION
SELECT vat, holdingtax, total FROM uplifts

...但是在我的temptable中,只有第一个 select 语句被填充到表中,而下一个 select 语句不插入数据。

4

2 回答 2

2

语法看起来不错,

第二个表中可能存在重复。

您可以使用 Union All 而不是 Union 来测试它。

我会在没有插入的情况下运行查询,看看你是否返回了你期望的结果。

于 2012-05-01T09:38:07.890 回答
2

我假设 UNION 正在删除重复的数据。我刚刚用 union ALL 做了一个测试:

insert into #temptable

select top 1 name from sys.tables
union  all
select top 1 name from sys.tables a

我得到了(2 row(s) affected)

尝试用 UNION ALL 替换 UNION

于 2012-05-01T09:39:03.613 回答