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