MS SQL判断是否为Integer

在MS SQL中处理用户输入的数值是否为Integer,为了简化程序代码,可以使用下面函数。

MS SQL判断是否为Integer IsInteger
CREATE   FUNCTION   [ dbo ] . [ IsInteger ]  
(
  
@Value   NVARCHAR ( 4000 )
RETURNS   NVARCHAR ( 4000 )
AS
BEGIN
   
DECLARE   @ResultValue   BIT  = 1
   
-- 如果IS NULL把值设为N''
    SET   @Value   =   ISNULL ( LTRIM ( @Value ), N '' )
   
-- 处理前导N'-'字符串,如果有,把它移除,这样才好做以下的判断。
    SET   @Value   =   CASE   WHEN   SUBSTRING ( @Value 1 1 =  N ' - '   THEN   SUBSTRING ( @Value 2 LEN ( @Value -   1 ELSE   @Value   END

    
-- 如不是数据或为N''返加Faluse
    IF   @Value   LIKE   ' %[^0-9]% '   OR   @Value   =  N ''
      
SET   @ResultValue   =   0
   

   
RETURN   @ResultValue
END

 

你可能感兴趣的:(Integer)