4
我有[BRKTFRT1] [decimal](7, 4
)列在@MyTable
表中。當發生小數點四捨五入時出現錯誤
當我嘗試插入值34.1234555
時,它已成功將34.1235
插入列中。實際上,如果有必要進行這樣的舍入,我需要防止這種舍入並提出錯誤。我們如何添加這樣的約束?
注意:一個想法是檢查輸入字符串的長度。但是我想將它添加爲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
SET NUMERIC_ROUNDABORT ON工作 – Lijo