您的位置:威尼斯官方网站 > 威尼斯官方网站登录 > 威尼斯官方网站:Transaction 方式甘休

威尼斯官方网站:Transaction 方式甘休

发布时间:2019-11-21 16:23编辑:威尼斯官方网站登录浏览(125)

    此间讲讲SqlServer的隐式事务。(俄文Implicit:含蓄的;暗中表示的;盲从的;卡塔尔

    隐式事务无需出示起头:不用 Begin Transaction,必需出示停止:以 Commit Transaction 也许 Rollback Transaction 情势了却。

    说话迭代迭代:SET IMPLICIT_TRANSACTIONS { ON | OFF }

    开了隐式事务后,上边包车型大巴语句的口舌就能自动开启隐式事务。

    威尼斯官方网站 1

    使用

    要想掌握当前有多少事情未有甘休:@@TranCount 。

    举个例子1:设置隐式事务关闭,固然暗中同意是关的。剩下多少工作未有停止。

    --创建一个表
    go  
    IF (OBJECT_ID(N'dbo.t1',N'U') IS NOT NULL) DROP TABLE dbo.t1;  
    go  
    CREATE table dbo.t1 (a int);  
    go  
    
    --设置隐式事务为关闭,其实默认就是关的.
    SET IMPLICIT_TRANSACTIONS OFF; 
    
    --插入两条数据
    INSERT INTO dbo.t1 VALUES (11);  
    INSERT INTO dbo.t1 VALUES (12);  
    
    --查看有多少条事务没有结束
    PRINT N' @@TranCount, after INSERTs, == ' + CAST(@@TRANCOUNT AS NVARCHAR(10));  
    
    
    --结果 @@TranCount, after INSERTs, == 0
    

    意气风发旦不张开隐式事务,事务截止都是半自动的。除非用 Begin Transaction。

    --设置隐式事务为关闭,其实默认就是关的.
    SET IMPLICIT_TRANSACTIONS OFF; 
    
    --开始事务
    BEGIN TRANSACTION; 
    --插入两条数据
    INSERT INTO dbo.t1 VALUES (11);  
    INSERT INTO dbo.t1 VALUES (12);  
    --查看有多少条数据没有关闭
    PRINT N'@@TranCount, after INSERTs, == ' + CAST(@@TRANCOUNT AS NVARCHAR(10)); 
    
    --结果 @@TranCount, after INSERTs, == 1
    
    --结束事务
    COMMIT TRANSACTION;
    --查看有多少条数据没有关闭
    PRINT N' @@TranCount, after INSERTs, == ' + CAST(@@TRANCOUNT AS NVARCHAR(10));  
    
    --结果 @@TranCount, after INSERTs, == 0 
    

     

    举例2:

    --设置隐式事务开启
    SET IMPLICIT_TRANSACTIONS ON;  
    --插入两条 删除一条
    INSERT INTO dbo.t1 VALUES (21); 
    INSERT INTO dbo.t1 VALUES (22); 
    delete from dbo.t1
    PRINT N'[B.03] @@TranCount, after INSERTs, == ' + CAST(@@TRANCOUNT AS NVARCHAR(10));  
    --提交一个事务
    COMMIT TRANSACTION;  
    PRINT N'[B.04] @@TranCount, after COMMIT, == ' + CAST(@@TRANCOUNT AS NVARCHAR(10));  
    go  
    
    --结果 
    --[B.03] @@TranCount, after INSERTs, == 1
    --[B.04] @@TranCount, after COMMIT, == 0
    

     

    SET IMPLICIT_TRANSACTIONS ON;  
    go  
    --开启事务
    BEGIN TRANSACTION;  
    --进行添加 删除操作
    INSERT INTO dbo.t1 VALUES (31);  
    INSERT INTO dbo.t1 VALUES (32);  
    delete from dbo.t1
    PRINT N'[C.03] @@TranCount, after INSERTs, == ' + CAST(@@TRANCOUNT AS NVARCHAR(10));  
    go  
    --提交事务
    COMMIT TRANSACTION;  
    PRINT N'[C.04] @@TranCount, after a COMMIT, == ' + CAST(@@TRANCOUNT AS NVARCHAR(10));  
    --提交事务
    COMMIT TRANSACTION;  
    PRINT N'[C.05] @@TranCount, after another COMMIT, == ' + CAST(@@TRANCOUNT AS NVARCHAR(10));  
    go  
    
    --[C.03] @@TranCount, after INSERTs, == 2
    --[C.04] @@TranCount, after a COMMIT, == 1
    --[C.05] @@TranCount, after another COMMIT, == 0
    

     

     

    隐式事务不怎么用,除非 SET ANSI_DEFAULTS (Transact-SQL).

    参照官方网站:

    本文由威尼斯官方网站发布于威尼斯官方网站登录,转载请注明出处:威尼斯官方网站:Transaction 方式甘休

    关键词:

上一篇:【威尼斯官方网站】再次求和的方法分享

下一篇:没有了