2011-06-13 64 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