0

我有一个更新语句,它更新了表中的很多字段。我得到错误

消息 8115,级别 16,状态 8,第 1 行将数字转换为数字数据类型的算术溢出错误。该语句已终止。

它没有显示究竟是哪个字段导致了问题。有没有办法从 SQL Server 获取这些信息?假设不能一个一个地手动检查每个字段。

4

1 回答 1

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”中;列不允许空值。更新失败。

具体问题栏目告诉你。

于 2013-09-11T15:13:43.080 回答