我无法与合并命令一起插入表
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命令怎指定某一列锁定,其他单元格可编辑与合并?
登录、电子邮件和密码验证无法与 SQL 表 Vb 一起正常工作