Sql server SQL从SELECT结果插入到表变量

Sql server SQL从SELECT结果插入到表变量,sql-server,tsql,variables,insert,Sql Server,Tsql,Variables,Insert,仅供参考,如果您想阅读: (我正在处理SQL数据库更新程序。我有一个(旧)ICD代码表,我想在旧表中插入新记录(~90k条记录)。如果不存在ICD代码,则插入,如果是更新。问题是要插入的数据来自一个名为IcdImportData的表(从.csv文件导入)我需要创建一个变量表,其中包含旧表和新ImportData表的比较值。) 我在问什么: 我想从返回多条记录的Select语句中向变量表插入值。我该怎么做 代码如下: SELECT IcdCodeID FROM ( SELECT IcdCo

仅供参考,如果您想阅读: (我正在处理SQL数据库更新程序。我有一个(旧)ICD代码表,我想在旧表中插入新记录(~90k条记录)。如果不存在ICD代码,则插入,如果是更新。问题是要插入的数据来自一个名为IcdImportData的表(从.csv文件导入)我需要创建一个变量表,其中包含旧表和新ImportData表的比较值。)

我在问什么: 我想从返回多条记录的Select语句中向变量表插入值。我该怎么做

代码如下:

SELECT IcdCodeID FROM
(
    SELECT IcdCodeID FROM IcdImportData
    UNION ALL
    SELECT IcdCodeValue FROM IcdCode
) tmp
GROUP BY IcdCodeID
HAVING COUNT(*)>=2
我想将结果插入这个变量表:

DECLARE @temp table (IcdCodeValue NCHAR(10))
INSERT INTO @temp
SELECT
(
*The code above*
)
错误:

Msg 512,16级,状态1,第2行 子查询返回了多个值。当子查询在=、!=、=或者当子查询用作表达式时。 声明已终止


这样做有效,您必须删除一个额外的
select

DECLARE @temp table (IcdCodeValue NCHAR(10))

INSERT INTO @temp
SELECT IcdCodeID FROM
(
        SELECT IcdCodeID FROM IcdImportData
        UNION ALL
        SELECT IcdCodeValue FROM IcdCode
) tmp
GROUP BY IcdCodeID
HAVING COUNT(*)>=2
还是这样做

DECLARE @temp table (IcdCodeValue NCHAR(10))
INSERT INTO @temp
SELECT * FROM
(
SELECT IcdCodeID FROM
(
        SELECT IcdCodeID FROM IcdImportData
        UNION ALL
        SELECT IcdCodeValue FROM IcdCode
) tmp
GROUP BY IcdCodeID
HAVING COUNT(*)>=2) t

请参见RDBMS的
INSERT
语法请显示失败的实际INSERT语句。还有,这是什么数据库?