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)
该GO声明被分离批,这意味着即使第一个错误,下一批将运行.我假设(你知道这意味着什么......)如果你有错误的话,你试图规避.
你可以查看GOTO,并有一个错误处理块.或者你可以拥有一个RETURN; 但是,这需要在同GO一块内
例:
GO
return
SELECT 'Test 1'
GO
SELECT 'Test 2'
GO
Run Code Online (Sandbox Code Playgroud)
仍将返回测试2,但不测试1.