Tsql 如何有目的地测试事务中的错误?
我有一个存储过程,在一个循环中有几个事务:Tsql 如何有目的地测试事务中的错误?,tsql,sybase,Tsql,Sybase,我有一个存储过程,在一个循环中有几个事务: WHILE @COUNT < @MY_NUM BEGIN BEGIN TRANSACTION -- DO STUFF HERE IF(@@ERROR != 0) BEGIN ROLLBACK TRANSACTION BREAK END COMMIT TRANSACTION END 而@COUNT
WHILE @COUNT < @MY_NUM
BEGIN
BEGIN TRANSACTION
-- DO STUFF HERE
IF(@@ERROR != 0)
BEGIN
ROLLBACK TRANSACTION
BREAK
END
COMMIT TRANSACTION
END
而@COUNT<@MY_NUM
开始
开始交易
--在这里做事
如果(@@ERROR!=0)
开始
回滚事务
打破
结束
提交事务
结束
现在,我想测试我的ROLLBACK事务
和BREAK
逻辑是否会工作,方法是在一定次数的运行后故意向循环引入错误并查看数据
此外,我从shell脚本运行这些存储过程。所以,我想在运行过程中使用<代码> Ctrl +C<代码>代码。这样行吗?如果不是,我如何有目的地引入错误
谢谢您可以执行以下操作之一:
您可以执行以下操作之一:
您可以使用
打印:
WHILE @COUNT < @MY_NUM
BEGIN
BEGIN TRANSACTION
print 'BEGIN TRANSACTION'
-- DO STUFF HERE
print '-- DO STUFF HERE'
IF(@@ERROR != 0)
BEGIN
ROLLBACK TRANSACTION
print 'ROLLBACK TRANSACTION @MY_NUM: %1!',convert(varchar,@MY_NUM)
BREAK
END
COMMIT TRANSACTION
print 'COMMIT TRANSACTION'
END
而@COUNT<@MY_NUM
开始
开始交易
打印“开始交易”
--在这里做事
打印“--在这里做事”
如果(@@ERROR!=0)
开始
回滚事务
打印“回滚事务@MY_NUM:%1!”,转换(varchar,@MY_NUM)
打破
结束
提交事务
打印“提交事务”
结束
它是指向文档的链接。您可以使用打印
:
WHILE @COUNT < @MY_NUM
BEGIN
BEGIN TRANSACTION
print 'BEGIN TRANSACTION'
-- DO STUFF HERE
print '-- DO STUFF HERE'
IF(@@ERROR != 0)
BEGIN
ROLLBACK TRANSACTION
print 'ROLLBACK TRANSACTION @MY_NUM: %1!',convert(varchar,@MY_NUM)
BREAK
END
COMMIT TRANSACTION
print 'COMMIT TRANSACTION'
END
而@COUNT<@MY_NUM
开始
开始交易
打印“开始交易”
--在这里做事
打印“--在这里做事”
如果(@@ERROR!=0)
开始
回滚事务
打印“回滚事务@MY_NUM:%1!”,转换(varchar,@MY_NUM)
打破
结束
提交事务
打印“提交事务”
结束
它是指向文档的链接