在 SQL Server 2008 中只允许整数作为变量

Only allow whole numbers as variables in SQL Server 2008

什么是识别变量是否为小数且不允许的简单脚本?我只希望整数作为从 SQL Server 2008 上的程序 运行 收到的变量,所以如果我得到一个小数或负数或带有 text/symbols 的数字,我想抛出一个错误。

可能有更简单的方法,但试试这个。

declare @val varchar(10) = '1.0'

if isnumeric(@val) = 1
    and charindex('.', @val) = 0
    and charindex('-', @val) = 0
    and charindex('$', @val) = 0

    select 'Valid'
else
    select 'Not valid'

或将以上与正则表达式结合使用。我不是正则表达式专家,但我确信这可以通过 patindex 完成。

declare @val varchar(10) = '1.0'

if isnumeric(@val) = 1
    and patindex('%[$.-]%', @val) = 0

    select 'Valid'
else
    select 'Not Valid'