首先基本语法
begin try
{ sql_statement |
statement_block }
end try
begin catch
{ sql_statement |
statement_block }
end catch
必须有begin catch 否则会报错
比如:
BEGIN try
RAISERROR(‘内’,16,1)
END TRY
报错:消息 102,级别 15,状态 1,第 3 行
‘TRY’ 附近有语法错误。
然后嵌套时,内部catch处理后,外部catch不会处理,
比如:
BEGIN TRY
IF @@ROWCOUNT=0
BEGIN
BEGIN try
RAISERROR(‘内’,16,1)
END TRY
BEGIN CATCH
END CATCH
END
–RAISERROR(‘外’,16,1)
END TRY
BEGIN CATCH
SELECT ERROR_MESSAGE() AS outside
END CATCH
提示:命令已完成,不会返回任何结果。说明并没有执行外部catch
如果是:
BEGIN TRY
IF @@ROWCOUNT=0
BEGIN
BEGIN try
RAISERROR(‘内’,16,1)
END TRY
BEGIN CATCH
END CATCH
END
RAISERROR(‘外’,16,1)
END TRY
BEGIN CATCH
SELECT ERROR_MESSAGE() AS outside
END CATCH
返回 列
outside
外
sqlserver 中的try catch嵌套
最新推荐文章于 2024-07-20 19:18:32 发布