zyk198500 发表于 2018-10-19 07:40:40

SQL中try catch的使用

  BEGIN TRY
  { sql_statement | statement_block }
  END TRY
  BEGIN CATCH
  [ { sql_statement | statement_block } ]
  END CATCH
  [ ; ]
  ----------------------------------------------------
检索错误消息
  在 CATCH 块的作用域内,可以使用以下系统函数来获取导致 CATCH 块执行的错误消息:

[*]  ERROR_NUMBER() 返回错误号。
[*]  ERROR_SEVERITY() 返回严重性。
[*]  ERROR_STATE() 返回错误状态号。
[*]  ERROR_PROCEDURE() 返回出现错误的存储过程或触发器的名称。
[*]  ERROR_LINE() 返回导致错误的例程中的行号。
[*]  ERROR_MESSAGE() 返回错误消息的完整文本。该文本可包括任何可替换参数所提供的值,如长度、对象名或时间。
-----------------------------------------------------------
  BEGIN TRY
  BEGIN TRANSACTION
  ----------------------------//////////////////////////////
  COMMIT TRANSACTION
  END TRY
  BEGIN CATCH
  rollback
  DECLARE @ErrMsg nvarchar(4000), @ErrSeverity int
  SELECT @ErrMsg = ERROR_MESSAGE(),@ErrSeverity = ERROR_SEVERITY()
  RAISERROR(@ErrMsg, @ErrSeverity, 1)
  END CATCH

页: [1]
查看完整版本: SQL中try catch的使用