MSSQL- Raiserror 会适时显示错误但不会停止插入
MSSQL- Raiserror will display error at right time but will not stop insertion
我目前正在 MSSQL 中构建存储过程以将信用卡插入我的数据库。
我检查一下 IF
语句中的 CC 是否全是数字 [0-9]
和不是全数字 [0-9]
的 RAISERROR
。
问题是 RAISERROR
正在捕获错误并在网页上显示错误消息,但它仍然将错误数据插入我的 table。
有什么想法吗?
这是我的代码:
-- 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 之后添加 return 语句。
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 年或更高版本,我实际上会使用 throw 而不是 raiserror。 Throw 将导致语句批处理终止。
http://sqlhints.com/2013/06/30/differences-between-raiserror-and-throw-in-sql-server/
我目前正在 MSSQL 中构建存储过程以将信用卡插入我的数据库。
我检查一下 IF
语句中的 CC 是否全是数字 [0-9]
和不是全数字 [0-9]
的 RAISERROR
。
问题是 RAISERROR
正在捕获错误并在网页上显示错误消息,但它仍然将错误数据插入我的 table。
有什么想法吗?
这是我的代码:
-- 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 之后添加 return 语句。
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 年或更高版本,我实际上会使用 throw 而不是 raiserror。 Throw 将导致语句批处理终止。
http://sqlhints.com/2013/06/30/differences-between-raiserror-and-throw-in-sql-server/