BEGIN TRAN declare @ident int INSERT INTO TEST ('A','B') select @ident=@@identity BEGIN TRAN INSERT INTO TEST ('E','F') COMMIT UPDATE TEST SET COLUMN1 = 'C' WHERE ID = @ident COMMIT 是不是这个意思
是的! 但是,在TEST 上有一个TRIGGER,TRIGGER中INSERT INTO 另一个表TEST2,TEST2 中也有ID,此时的@@identity是TEST2所产生的ID,而不是TEST中的ID。 怎么办?
declare @ident int
INSERT INTO TEST ('A','B')
select @ident=@@identity
BEGIN TRAN
INSERT INTO TEST ('E','F')
COMMIT
UPDATE TEST SET COLUMN1 = 'C' WHERE ID = @ident
COMMIT 是不是这个意思
但是,在TEST 上有一个TRIGGER,TRIGGER中INSERT INTO 另一个表TEST2,TEST2 中也有ID,此时的@@identity是TEST2所产生的ID,而不是TEST中的ID。
怎么办?
------------------------------------------------
insert into mytable(col1,col2) values('1','name')
--------------------------------------------------
begin tran
insert into mytable(col1,col2) values('1','name')
commit
当你没有使用事务处理的时候用begin tran和commit tran,当你不用事务处理的时候就是自动commit