0

テーブル内の多くのフィールドを更新する update ステートメントがあります。エラーが発生します

メッセージ 8115、レベル 16、状態 8、行 1 数値をデータ型数値に変換中に算術オーバーフロー エラーが発生しました。ステートメントは終了されました。

どのフィールドが問題を引き起こしているかは正確にはわかりません。SQL Server からこの情報を取得する方法はありますか? 各フィールドを 1 つずつ手動でチェックすることはオプションではないと仮定します。

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 に答える