读书人

SQL2008数据库 事务,该怎么解决

发布时间: 2013-01-26 13:47:02 作者: rapoo

SQL2008数据库 事务
数据库的事务怎么写啊!老师只是讲了下概念性的东西,具体怎么写根本都不会啊!!求高手
[解决办法]
假设数据库中有表一张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

则由于第二条执行失败,会回滚第一条。此时数据库中没有记录。

读书人网 >.NET

热点推荐