首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

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

2013-01-26 
SQL2008数据库事务数据库的事务怎么写啊!老师只是讲了下概念性的东西,具体怎么写根本都不会啊!!求高手[解

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

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

热点排行