SQL2008数据库 事务,该怎么解决
SQL2008数据库 事务
数据库的事务怎么写啊!老师只是讲了下概念性的东西,具体怎么写根本都不会啊!!求高手
------解决方案--------------------
假设数据库中有表一张ID为主键的表
如果直接用两条insert语句
则第一条执行成功,第二条不成功,因为违反主键约束。此时数据库有有一条记录。
如果用事务
则由于第二条执行失败,会回滚第一条。此时数据库中没有记录。
数据库的事务怎么写啊!老师只是讲了下概念性的东西,具体怎么写根本都不会啊!!求高手
------解决方案--------------------
假设数据库中有表一张ID为主键的表
如果直接用两条insert语句
INSERT INTO [表]([ID]) VALUES (1);
INSERT INTO [表]([ID]) VALUES (1);
则第一条执行成功,第二条不成功,因为违反主键约束。此时数据库有有一条记录。
如果用事务
BEGIN TRANSACTION
INSERT INTO [表]([ID]) VALUES (1);
INSERT INTO [表]([ID]) VALUES (1);
IF @@ERROR > 0
BEGIN
ROLLBACK TRANSACTION
END
ELSE
BEGIN
COMMIT TRANSACTION
END
则由于第二条执行失败,会回滚第一条。此时数据库中没有记录。