begin tran
insert into OPENDATASOURCE ('SQLOLEDB','Data Source=psserver;User ID=sa;Password=').test.DBO.T_tests (F_speccode,F_specname,F_sprice,F_type)
select F_speccode,F_specname,F_sprice,F_type from T_spec
insert into T_bookc(F_bookcode,F_speccode,F_num)
select F_Bookcode,F_Bookspeccode,F_nums from T_books
if @@error=0
begin
update T_spec set F_state=1
commit tran
end
else
begin
rollback tran
end
go在查询分析器里执行以上语句时提示
“无法为 OLE DB 提供程序 'SQLOLEDB' 启动嵌套事务。之所以需要嵌套事务是因为 XACT_ABORT 选项已设置为 OFF。
[OLE/DB provider returned message: 无法在此会话中启动更多的事务。]”本意是将表T_spec中的记录插入到表T_tests ,表T_books插入到表T_bookc,如果两个表都插入成功,则把T_spec中的字段F_state改为1,否则则回滚!
请各位大哥帮忙看看!
insert into OPENDATASOURCE ('SQLOLEDB','Data Source=psserver;User ID=sa;Password=').test.DBO.T_tests (F_speccode,F_specname,F_sprice,F_type)
select F_speccode,F_specname,F_sprice,F_type from T_spec
insert into T_bookc(F_bookcode,F_speccode,F_num)
select F_Bookcode,F_Bookspeccode,F_nums from T_books
if @@error=0
begin
update T_spec set F_state=1
commit tran
end
else
begin
rollback tran
end
go在查询分析器里执行以上语句时提示
“无法为 OLE DB 提供程序 'SQLOLEDB' 启动嵌套事务。之所以需要嵌套事务是因为 XACT_ABORT 选项已设置为 OFF。
[OLE/DB provider returned message: 无法在此会话中启动更多的事务。]”本意是将表T_spec中的记录插入到表T_tests ,表T_books插入到表T_bookc,如果两个表都插入成功,则把T_spec中的字段F_state改为1,否则则回滚!
请各位大哥帮忙看看!
解决方案 »
- 我不小心把SQL一个数据库给删除了
- Oracle中SQL语句的算法,朋友们来帮我下
- 数据重复问题
- 邹建大哥,实在解决不了了,只有麻烦您了。。。。。
- 查询分析出错,怎么解决~~~
- exec sp_executesql @sql1+@sql2...
- mysql的字符集问题。跪请高手解答
- 如何在SQL语句中做循环?
- sql server2000 删除、生成文件的问题
- 用存储过程保存父表和子表的数据如何处理?
- 在连接串中:provider=sqloledb与provider=sqlolddb.1有何本质区别呢?我发现连接串的一个权威网站上是第一种,可是第二种才能连上
- SQLSERVERAGENT 启动不了,是怎么回事?
begin tran
insert into OPENDATASOURCE ('SQLOLEDB','Data Source=psserver;User ID=sa;Password=').test.DBO.T_tests (F_speccode,F_specname,F_sprice,F_type)
select F_speccode,F_specname,F_sprice,F_type from T_spec
insert into T_bookc(F_bookcode,F_speccode,F_num)
select F_Bookcode,F_Bookspeccode,F_nums from T_books
if @@error=0
begin
update T_spec set F_state=1
commit tran
end
else
begin
rollback tran
end
SET XACT_ABORT off
go
begin tran
insert into OPENDATASOURCE ('SQLOLEDB','Data Source=psserver;User ID=sa;Password=').test.DBO.T_tests (F_speccode,F_specname,F_sprice,F_type)
select F_speccode,F_specname,F_sprice,F_type from T_spec
insert into T_bookc(F_bookcode,F_speccode,F_num)
select F_Bookcode,F_Bookspeccode,F_nums from T_books
update T_spec set F_state=1
commit tran
SET XACT_ABORT OFF
-----
另外if @@error=0只能判断最近一条语句的执行状态