我无法与Merge命令一起插入表中

时间:2019-07-03 13:55:41

标签: sql-server sql-server-2017 sql-server-2017-express

无法执行与插入语句合并(用于会计处理)

表1包含要注销的GRList(基于表3上的日期)

表2包含所有GR详细信息(从2010年1月1日到现在的所有信息)

表3包含最早的索偿日期(例如:2018年4月1日)

因此从上述场景中,最早的索偿日期(例如:2018年4月1日)从表3中提取,然后在表2中搜索提取日期之前的GR(<= 1-apr-2018) ),并在表1中填充记录(从2010年1月1日到2018年3月31日)

在SQL中尝试过的代码

MERGE Table1 As Target
Using (select column1, column2 From Table2 AS tbl2 INNER JOIN Table3 as tbl3
ON tbl2.column1 = tbl3.column1
WHERE
tbl2.column1 = tbl3.column1 AND tbl2.column2 = tbl3.column2) AS SOURCE

ON
(Target.Column1 = Source.Column1 AND Target.Column2 = Source.Column2  AND Target.Column5 <= Source.Column5 )

WHEN MATCHED AND 
Target.Column1 = Source.Column1 AND Target.Column2 = Source.Column2

THEN UPDATE SET Target.Column4='Updated'

WHEN NOT MATCHED BY TARGET 
THEN INSERT 
(Column1, Column2, Column3)
VALUES
(Source.Column1, Source.Column2, Source.Column3)

错误

消息248,第16级,状态1,第23行 nvarchar值'3000143371'的转换溢出了int列。 该声明已终止。

1 个答案:

答案 0 :(得分:0)

您的目标表列数据类型之一是INT。您正在尝试为数据类型INT插入一个大值 尝试将目标列数据类型从INT更改为BIGINT。