2

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

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

4

2 回答 2

8

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

查看IsNumeric 函数

于 2009-10-27T22:45:51.803 回答
0

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 
于 2009-12-14T15:38:18.840 回答