Transact-SQL中的参数检查(SQL Server 2008):IF / OR / raiserror语法错误

时间:2011-07-01 17:54:51

标签: sql-server tsql if-statement

我目前有这段代码可以检查输入变量是否在一定范围内:

IF (@vThingID < 17 OR @vThingID > 16381)
BEGIN
    raiserror('Thing ID out of range: must be between 17 and 16381')
    RETURN
END

这是存储过程中的T-SQL代码。 “编译”到存储过程的错误消息是:

  

消息102,级别15,状态1,服务器 * - ,过程np * ** * * ,第19行   ')'附近的语法不正确。

我尝试更改所有语法 - 删除括号,取出OR语句,在某些行后面加分号等等。它似乎没有任何区别,我无法发现任何语法错误这里。

2 个答案:

答案 0 :(得分:3)

RAISERROR函数的严重性和状态不是可选的。检查documentation并确定哪些值对您最有意义。

答案 1 :(得分:1)

IF (@vThingID < 17 OR @vThingID > 16381)
BEGIN
    raiserror('Thing ID out of range: must be between 17 and 16381', 10, 11)
    RETURN
END