MSSQL-RAISERROR将在正确的时间显示错误,但不会停止插入



我目前正在MSSQL中构建一个存储过程,以将信用卡插入我的数据库中。

我有检查查看IF语句中的CC是否为[0-9],而RAISERROR并非全部Digits [0-9]

问题是RAISERROR正在捕获错误并在网页上显示错误消息,但仍将不良数据插入我的表中。

有什么想法吗?

这是我的代码:

-- Checking to see that @CC is composed of number [0-9]
declare @error_message9 varchar(225)
if not(@CC like '%[0-9]%+$')
    Begin
        set @error_Message9 = 'Error[9]: [ ' + @CC + ' ] is not a vaild number. CC must contain all numbers [0-9]'
        raiserror(@error_Message9, 16, 1)
    End

raiserror之后添加返回语句。

if not(@CC like '%[0-9]%+$')
    Begin
        set @error_Message9 = 'Error[9]: [ ' + @CC + ' ] is not a vaild number. CC must contain all numbers [0-9]'
        raiserror(@error_Message9, 16, 1)
        return 
    End

如果您在SQL 2012或更高版本上,我实际上会使用投掷而不是Raiserror。投掷将导致语句批次终止。

http://sqlhints.com/2013/06/30/differences-between-raiserror-and-and-throw-inw-inw-in-sql-server/

最新更新