我无法与合并命令一起插入表

Posted

技术标签:

【中文标题】我无法与合并命令一起插入表【英文标题】:I am unable to do insert into a table along with Merge command 【发布时间】:2019-07-03 13:55:41 【问题描述】:

无法执行 Merge with Insert 语句(用于会计流程)

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

Table2 包含所有 GR 详细信息(从 2010 年 1 月 1 日至今的所有信息)

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

因此,从上述场景中,最早的索赔日期(例如:2018 年 4 月 1 日)从表 3 中获取,然后在表 2 中搜索提取日期之前的 GR(

在 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】:

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

【讨论】:

我完全同意你的观点,但我尝试只更新目标表和源表中的 nvarchar 数据类型的一列,但仍然出现相同的错误。

以上是关于我无法与合并命令一起插入表的主要内容,如果未能解决你的问题,请参考以下文章

Excel用宏vb命令怎指定某一列锁定,其他单元格可编辑与合并?

无法将 sum 函数与派生表结果一起使用

登录、电子邮件和密码验证无法与 SQL 表 Vb 一起正常工作

无法将值插入 MySQL 表

xcodebuild 命令无法与动态可可触摸框架一起正常工作

无法让数据表与 django 生成的表一起使用