我有一个存储过程可以返回错误,这个例子总是会返回错误
create proc regresaerror
as
begin
raiserror 51001 'Error al borrar los precios especiales'
end
declare @error varchar(max)
set @error=''
begin try
set @error=exec regresaerror
end try
begin catch
end catch
我试过了(因为我需要在临时表中插入此错误)但是该块代码会出现此错误
Msg 156,Level 15,State 1,Line 4
关键字'exec'附近的语法不正确。
无法更新存储过程以添加输出变量
然后我怎样才能发现错误?
答案 0 :(得分:1)
第一个解决方案:
BEGIN TRY
EXECUTE regresaerror
END TRY
BEGIN CATCH
SELECT
ERROR_NUMBER() AS ErrorNumber
,ERROR_MESSAGE() AS ErrorMessage;
END CATCH;
Here是MSDN的链接。
第二个解决方案:
create proc regresaerror
(
errmsg varchar(max) out
)
as
begin
set errmsg = 'Error al borrar los precios especiales'
return 51001 -- if error
end
declare @error varchar(max)
declare @numerror int
set @error=''
exec @numerror = regresaerror @error out