使用SQL Server 2000检查数值

时间:2009-10-27 22:43:00

标签: sql-server sql-server-2000 numeric

如何知道VARCHAR字段的值是否可以成功转换为整数?

我想大规模地将记录从一个表插入到另一个表中......

2 个答案:

答案 0 :(得分:8)

IsNumeric()函数为字符串(varchars)返回1,可以转换为数字,0表示不能转换为数字的字符串。

查看IsNumeric function

答案 1 :(得分:0)

whit IsNumeric()函数的一个问题是你将获得True并且如果数字有小数分隔符, 什么是完全正确的,但如果我需要直接检查varchar中的数字,没有小数符号,(当我需要计算条形码上的CHECK数字时我得到了)你可以使用castom 像

这样的功能
create FUNCTION [dbo].[checkbarkod] 
(
    @ean_kod varchar(13)
)
RETURNS bit
AS
begin
    declare @duzina int
    declare @slovo char(1)
    declare @pozicija int
    declare @uredu bit
    set @duzina=len(@ean_kod) 
    while @duzina>0
        begin
            set @slovo=(substring(@ean_kod,@duzina,1))
            if  (@slovo not in('1','2','3','4','5','6','7','8','9','0'))
                begin
                    set @uredu=convert(bit,0)
                    break
                end
            else 
                begin
                    set @uredu=convert(bit,1)
                    set @duzina=@duzina-1
            end
        end
    RETURN @uredu
end