Sql server SQL从SELECT结果插入到表变量
仅供参考,如果您想阅读: (我正在处理SQL数据库更新程序。我有一个(旧)ICD代码表,我想在旧表中插入新记录(~90k条记录)。如果不存在ICD代码,则插入,如果是更新。问题是要插入的数据来自一个名为IcdImportData的表(从.csv文件导入)我需要创建一个变量表,其中包含旧表和新ImportData表的比较值。) 我在问什么: 我想从返回多条记录的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
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语句。还有,这是什么数据库?