2011-06-13 63 views
1

我想問一下如何檢查數據庫中列的數據類型溢出。SQL - 如何檢查數據類型溢出

這是我需要放入SQL的文本。

「溢出happend當值超出列的數據類型的間隔的」

感謝您的回答。

+0

什麼數據庫和你在做什麼可能會導致溢出 – 2011-06-13 11:06:10

+0

對於int?約會時間?文本的長度? – gbn 2011-06-13 11:09:39

+0

在存儲過程中使用try catch語句 – neo 2011-06-13 11:10:42

回答

2

像這樣的工作對於SQL Server ...

DECLARE @userInput NVarChar(100) = '129387918279387987123123'; 
DECLARE @value Int; 

BEGIN TRY 
    SELECT @value = CONVERT(Int, @userInput); 
END TRY 
BEGIN CATCH 
    PRINT 'Overflow happend when the value is out of interval of column''s data type'; 
END CATCH; 
1

在數據庫應用程序,沒有真正從溢出自動恢復(在代碼中恢復)沒有什麼好的辦法。您必須回滾事務。

所以你將不得不陷入服務器引發的溢出錯誤,然後再回滾或再次引發該錯誤,以便其他模塊可以回滾。我真的不明白這一點,但我可能會錯過一些東西。

我錯過了什麼嗎?

+0

這是我們腳本中的解決方案,但我真的不理解它。我是新手。 – joseph 2011-06-13 12:58:34

+0

from data_stage_tmp.gc_currency_quotes 其中abs(spot_ask)> = cast(99999.9999999爲十進制(13,7)); – joseph 2011-06-13 12:58:40

+0

我需要從另一個表中檢索帶有檢查溢出字段的表,並在提供該表之前用它刪除行 – joseph 2011-06-13 13:02:57