ROLLBACK SQL事务时停止执行

Jef*_*ock 0 sql t-sql sql-server

一旦我在T-SQL中回滚事务,有没有办法停止执行代码?例如,在下面的代码中,我想要打印"消息1",而不是"消息2".

BEGIN TRANSACTION
GO
PRINT 'Message 1'
ROLLBACK TRANSACTION
GO
PRINT 'Message 2'
GO
Run Code Online (Sandbox Code Playgroud)

Mik*_* M. 5

GO声明被分离批,这意味着即使第一个错误,下一批将运行.我假设(你知道这意味着什么......)如果你有错误的话,你试图规避.

你可以查看GOTO,并有一个错误处理块.或者你可以拥有一个RETURN; 但是,这需要在同GO一块内

例:

GO
  return
  SELECT 'Test 1'
GO
  SELECT 'Test 2'
GO
Run Code Online (Sandbox Code Playgroud)

仍将返回测试2,但不测试1.