您好,我是一名入门级别的学生,想咨询各位大神一下数据库中的问题,比如 我在一个事务中有操作游标,结构如下
begin try
begin tran
某某操作(有使用游标);
commit tran
end try
begin catch
if(@@trancount>0) rollback tran;
end catch
我想咨询的是,
1、我上面的这样写法是不是比较普遍,没有什么问题吧?不会让别人感觉到我写的这个很奇怪把?
2、游标中的@@fetch_status值不为0的时候会不会抛出异常到catch中从而导致事务回滚?
好像@@fetch_status值不为0的时候不会抛出异常到catch中,我之所以这样猜测是因为
一个游标建立之后,fetch next 读到最后一行之后肯定读不到了,导致@@fetch_status不为0,
但是这个情况是正常的,不应该抛出异常,那什么值的时候会抛出异常呢?
求各位高手给予小妹一点指导 谢谢
begin try
begin tran
某某操作(有使用游标);
commit tran
end try
begin catch
if(@@trancount>0) rollback tran;
end catch
我想咨询的是,
1、我上面的这样写法是不是比较普遍,没有什么问题吧?不会让别人感觉到我写的这个很奇怪把?
2、游标中的@@fetch_status值不为0的时候会不会抛出异常到catch中从而导致事务回滚?
好像@@fetch_status值不为0的时候不会抛出异常到catch中,我之所以这样猜测是因为
一个游标建立之后,fetch next 读到最后一行之后肯定读不到了,导致@@fetch_status不为0,
但是这个情况是正常的,不应该抛出异常,那什么值的时候会抛出异常呢?
求各位高手给予小妹一点指导 谢谢
解决方案 »
- 在phpmyadmin中如何给一个字段做成索引?
- 关于在性能监视器中查看数据库实例的data file size项总是100,请问是怎么回事?
- 请问怎样将sqlserver的一个数据转换任务包(DTS)从一个服务器转移到另一个服务器
- 如何在 sqlserver2000中查找某个索引
- 求高人写复杂SQL代码
- 一个sql语句的问题?
- VC6中用ADO调用SQL Server数据库时,编译通过,但运行时出错,why?
- ?我的困惑!!如何实现在指定路径下进行“图片存取”??
- 关于update语句的使用!
- Fill(da, ds, "wareQty")请帮忙讲解下是什么意思?谢谢
- 修改表中字段类型的错误 如何处理。。。。
- 求一关于group的sql
2、 SELECT * FROM sys.messages 这个里面存在的均可触发异常处理。无需特别的控制,try里面会检测的。 @@fetch_status不为0 的情况,需要lz判断处理。这仅仅是一个结果性错误,而非语法或逻辑错误。
set @i=2;
begin try
begin tran
set @i=1;
RAISERROR ('不允许插入重复的配件', 16, 1)WITH NOWAIT ;
commit tran
end try
begin catch
rollback tran;
end catch
print @i为何@i是1 不是2???求解
declare @i int
set @i=2;
begin try
begin tran
set @i=1;
RAISERROR ('不允许插入重复的配件', 16, 1)WITH NOWAIT ;
commit tran
end try
begin catch
rollback tran;
end catch
print @i为何@i是1 不是2???求解