テーブルに[BRKTFRT1] [decimal](7, 4
) 列があり@MyTable
ます。
値を挿入しようとすると、列に34.1234555
正常に挿入34.1235
されます。実際には、この丸めを防止し、そのような丸めが必要になった場合はエラーを発生させる必要があります。どうすればそのような制約を追加できますか?
注: 1 つのアイデアは、入力文字列の長さをチェックすることです。しかし、開発者がこの制約を見逃さないように、これを CHECK 制約として追加したいと思います。
注: SQL Server 2012 を使用しています
注:丸めを「回避」しようとしているわけではありません。呼び出し元のプログラムに、(エラーを発生させることによって) 間違った値を提供したことを通知する必要があります。
DECLARE @MyTable TABLE (BRKTFRT1 [decimal](7, 4) )
DECLARE @MyStringDecimal VARCHAR(20)
SET @MyStringDecimal = '34.1234555'
INSERT INTO @MyTable (BRKTFRT1) VALUES (@MyStringDecimal)
SELECT BRKTFRT1 FROM @MyTable