不好意思,第一个应是这样
while(条件)
begin
begin tran
do something
commit tran
endbegin tran
do something
commit tran
此时第二事务不会执行
while(条件)
begin
begin tran
do something
commit tran
endbegin tran
do something
commit tran
此时第二事务不会执行
解决方案 »
- default约束
- 一个很基础的聚合查询
- uniqueidentifier
- 存储过程中如何写in(1,2,3)这样的参数查询,其中1,2,3是参数
- 问句SQL
- 求和的问题
- 怎么写程序监测操作 SQLSERVER 的SQL 语句?
- 高手进来拿分,关于sql语句的问题,实在搞不定了。。
- 关于复制的问题(高手请进,高分酬谢,不够另开贴酬谢)
- 如何在sql server 2000 写存储过程,那里有例子或帮助?
- 怎样用insert将其它表的值和固定值插入到表?
- 求助:本人在2000SERVER上安装了SQL2000企业版,可每隔1,2小时后发现ADSL断线,网卡灯和ADSL灯狂闪,无法再次拨号,进程中SQL占CPU时间9
begin
begin tran
--do something
------------------------------------------------1
commit tran
end
begin tran
do something
---------------------------------------------------2
commit tran
1中出错是否有return如果有,2肯定不执行了!你可以用goto语句或者别的
CREATE TABLE t2 (a int REFERENCES t1(a))
GO
INSERT INTO t1 VALUES (1)
INSERT INTO t1 VALUES (3)
INSERT INTO t1 VALUES (4)
INSERT INTO t1 VALUES (6)
GO
--SET XACT_ABORT OFF
SET XACT_ABORT ON
GO
declare @i int
set @i=0
while(@i<3)
begin
begin tran
INSERT INTO t1 VALUES (1)
commit tran
set @i=@i+1
endBEGIN TRAN
INSERT INTO t2 VALUES (4)
COMMIT TRANSELECT *
FROM t2
GODROP TABLE t2
DROP TABLE t1
GO
-------------------------
SET XACT_ABORT ON时
t2表为空
SET XACT_ABORT OFF时
t2表插入了记录4
CREATE TABLE t2 (a int REFERENCES t1(a))
GO
INSERT INTO t1 VALUES (1)
INSERT INTO t1 VALUES (3)
INSERT INTO t1 VALUES (4)
INSERT INTO t1 VALUES (6)
GO
SET XACT_ABORT OFF
GO
BEGIN TRAN
INSERT INTO t2 VALUES (1)
INSERT INTO t2 VALUES (2) /* Foreign key error */
INSERT INTO t2 VALUES (3)
COMMIT TRAN
GOSET XACT_ABORT ON
GOBEGIN TRAN
INSERT INTO t2 VALUES (4)
INSERT INTO t2 VALUES (5) /* Foreign key error */
INSERT INTO t2 VALUES (6)
COMMIT TRAN
GO/* Select shows only keys 1 and 3 added.
Key 2 insert failed and was rolled back, but
XACT_ABORT was OFF and rest of transaction
succeeded.
Key 5 insert error with XACT_ABORT ON caused
all of the second transaction to roll back. */SELECT *
FROM t2
GODROP TABLE t2
DROP TABLE t1
GO