如何知道VARCHAR字段的值是否可以成功转换为整数?
我想大规模地将记录从一个表插入到另一个表中......
答案 0 :(得分:8)
IsNumeric()函数为字符串(varchars)返回1,可以转换为数字,0表示不能转换为数字的字符串。
答案 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