100分,严重讨论 所谓嵌套就是说insert调用了update,update又调用了insert,你写了两个存储过程后调用exec来执行等于是顺序执行了两个存储过程,与嵌套没有任何关系,这是概念上的区别,你可以看看程序设计中关于嵌套的定义 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个是事务嵌套事务处理嵌套的语法和对@@TRANCOUNT的影响BEGIN TRAN @@TRANCOUNT+1COMMIT TRAN @@TRANCOUNT-1ROLLBACK TRAN 使@@TRANCOUNT回归0SAVE TRAN 不影响@@TRANCOUNT举例SELECT '事务处理前', @@TRANCOUNT --值为 0BEGIN TRAN SELECT '第一个事务', @@TRANCOUNT --值为 1 SELECT * FROM table1 BEGIN TRAN SELECT '第二个事务', @@TRANCOUNT --值为 2 DELETE table1 COMMIT TRAN SELECT '递交第二个事务', @@TRANCOUNT --值为 1ROLLBACK TRANSELECT '回滚第一个事务', @@TRANCOUNT --值为 0你的例子改为这样的话create procedure sp_1asbegin transactionSELECT '第一个过程', @@TRANCOUNTselect * from tablecommit transactionSELECT '递交第一个过程', @@TRANCOUNT --值为 0create procedure sp_2asbegin transactionSELECT '第二个过程', @@TRANCOUNTselect * from talbecommit transactionSELECT '递交第二个过程', @@TRANCOUNT --值为 0运行begin tran t1SELECT '测试嵌套开始', @@TRANCOUNTexec sp_1exec sp_2commit tran t1SELECT '测试嵌套结束', @@TRANCOUNT--结果测试嵌套开始 1第一个过程 2递交第一个过程 1 第二个过程 2递交第二个过程 1测试嵌套结束 0--sp1 与sp2 间没有事务嵌套,嵌套发生在t1与sp_1,t1与sp_2之间 SET XACT_ABORT 为 ON 时,如果 Transact-SQL 语句产生运行时错误,整个事务将终止并回滚过程离使用链接服务器要加上set xact_abort onSET ANSI_NULL_DFLT_ON on SET ANSI_WARNINGS on BTW :后来我想呀想,想呀想。。看着我深爱的女孩的照片,想呀想哈哈,你狂有精神动力么,because 偶没有女孩,所以就只能想到这里了,嘻嘻嘻 有连接服务器看来只能这样了,加set xact_abort on 吧 SQLServer 与 路由器 问题 怎么固定字段内容的顺序 关于触发器的问题 求一条sql语句~~ 请问面试题我这么答可以吗? 如何求一个月内的每天某个字段的记录不在之前时间记录中的数量 请各位帮帮忙~看看这条select语句~ 求一条SQL命令,或者帮我优化一下我的语句。从库中读出所有人员的第一条记录有效记录。 请教个简单SQL,在线等,谢谢!!! 急!应该用什么实现? 请问如何update一个表 如何建立这样的触发器??请高手赐教
COMMIT TRAN @@TRANCOUNT-1
ROLLBACK TRAN 使@@TRANCOUNT回归0
SAVE TRAN 不影响@@TRANCOUNT举例
SELECT '事务处理前', @@TRANCOUNT --值为 0
BEGIN TRAN
SELECT '第一个事务', @@TRANCOUNT --值为 1
SELECT * FROM table1
BEGIN TRAN
SELECT '第二个事务', @@TRANCOUNT --值为 2
DELETE table1
COMMIT TRAN
SELECT '递交第二个事务', @@TRANCOUNT --值为 1
ROLLBACK TRAN
SELECT '回滚第一个事务', @@TRANCOUNT --值为 0
你的例子改为这样的话
create procedure sp_1
as
begin transaction
SELECT '第一个过程', @@TRANCOUNT
select * from table
commit transaction
SELECT '递交第一个过程', @@TRANCOUNT --值为 0create procedure sp_2
as
begin transaction
SELECT '第二个过程', @@TRANCOUNT
select * from talbe
commit transaction
SELECT '递交第二个过程', @@TRANCOUNT --值为 0运行begin tran t1
SELECT '测试嵌套开始', @@TRANCOUNT
exec sp_1
exec sp_2
commit tran t1
SELECT '测试嵌套结束', @@TRANCOUNT--结果
测试嵌套开始 1
第一个过程 2
递交第一个过程 1
第二个过程 2
递交第二个过程 1
测试嵌套结束 0
--sp1 与sp2 间没有事务嵌套,嵌套发生在t1与sp_1,t1与sp_2之间
过程离使用链接服务器要加上set xact_abort onSET ANSI_NULL_DFLT_ON on SET ANSI_WARNINGS on BTW :后来我想呀想,想呀想。。看着我深爱的女孩的照片,想呀想
哈哈,你狂有精神动力么,
because 偶没有女孩,所以就只能想到这里了,嘻嘻嘻