数据库RAISERROR的错误,在应用程序中不起作用
今天遇到一个问题,在存储过程中有这样的一个语句
DECLARE @err_msg VARCHAR(MAX) ,
@err_severity INT ,
@err_state INT
BEGIN TRY
SELECT *
FROM tablename1
RAISERROR('121212',11,1)
END TRY
BEGIN CATCH
SET @err_msg = ERROR_MESSAGE()
SET @err_severity = ERROR_SEVERITY()
SET @err_state = ERROR_STATE()
RAISERROR(@err_msg,@err_severity,@err_state)
END CATCH
但是在程序里,使用sqldataadapter.UPDATE()执行这个过程时,不会捕捉到错误,如果把
SELECT * FROM tablename1注释掉,就可以捕捉到错误。在查询分析器里试了下,是可以看到错误消息提示的。
是不是查表语句后,RAISERROR不起作用?