在MS SQL中处理用户输入的数值是否为Integer,为了简化程序代码,可以使用下面函数。
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
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
(
@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