我有两张表:主表A、从表B
A:
aID,aNameB:
bID,aIDaID和bID 都是自增----------------------------------------我现在要分别往A和B中加入数据
本来是应该:
insert A (aName) value ('xx')
插入A后再获取刚才插入的aID
然后将aID插入B----------------------------------------但是我现在想用事务:如果插入B失败则A也回滚
这样的话,就无法获取aID了----------------------------------------我现在要的结果就是:
插入A后获取aID,再将aID插入B
要是中间出现问题,则回滚
A:
aID,aNameB:
bID,aIDaID和bID 都是自增----------------------------------------我现在要分别往A和B中加入数据
本来是应该:
insert A (aName) value ('xx')
插入A后再获取刚才插入的aID
然后将aID插入B----------------------------------------但是我现在想用事务:如果插入B失败则A也回滚
这样的话,就无法获取aID了----------------------------------------我现在要的结果就是:
插入A后获取aID,再将aID插入B
要是中间出现问题,则回滚
SET XACT_ABORT ON --这个查下就知道了
BEGIN TRANSACTION --事务开始DECLARE @aID INT --定义@aID变量准备获取表A的自增IDINSERT INTO A
(aName)
VALUES
('xx')SET @aID=@@IDENTITY --利用@@IDENTITY获取表A的自增ID给@aIDINSERT INTO B --将获取的表A的自增ID的值利用@aID输入表B
(aID)
VALUES
(@aID)COMMIT TRANSACTION --执行事务