我有一个更新语句,它会更新表中的很多字段。我收到了错误
Msg 8115,Level 16,State 8,Line 1 算术溢出错误将数字转换为数据类型数字。 声明已经终止。
它没有显示导致问题的确切字段。 有没有办法从SQL Server获取此信息? 假设一个接一个地手动检查每个字段不是一个选项。
答案 0 :(得分:1)
您没有说明您的列是否允许NULL
值。
CREATE TABLE T
(
D1 DECIMAL(2,2) NOT NULL,
D2 DECIMAL(2,2) NOT NULL
)
INSERT INTO T VALUES(0.99,0.99)
然后
UPDATE T SET D1=0.33, D2=2.0
提供高度信息性的
将数字转换为数据类型为数字的算术溢出错误。
但是
SET ARITHABORT OFF;
SET ANSI_WARNINGS OFF;
UPDATE T SET D1=0.33, D2=2.0
提供更多信息
无法将值NULL插入列'D2',表'MyDb.dbo.T'; 列不允许空值。更新失败。
告诉你具体的问题专栏。