SAVE TRANSACTION SAVE TRANSACTION - 北京怡康軟件科技有限公司 資源網(wǎng) "/>

亚洲av色香蕉一区二区三区,十四以下岁毛片带血a级,亚洲 校园 欧美 国产 另类,亚洲av日韩av一区谷露,色欲av无码一区二区三区

  • 相關軟件
    >SAVE TRANSACTION 創(chuàng)建者:webmaster 更新時間:2006-02-16 15:51

    在事務內(nèi)設置保存點。



    語法


    SAVE TRAN [ SACTION ] { savepoint_name | @savepoint_variable }



    參數(shù)


    savepoint_name



    是指派給保存點的名稱。保存點名稱必須符合標識符規(guī)則,但只使用前 32 個字符。



    @savepoint_variable



    是用戶定義的、含有有效保存點名稱的變量的名稱。必須用 char、varcharncharnvarchar 數(shù)據(jù)類型聲明該變量。



    注釋


    用戶可以在事務內(nèi)設置保存點或標記。保存點定義如果有條件地取消事務的一部分,事務可以返回的位置。如果將事務回滾到保存點,則必須(如果需要,使用更多的 Transact-SQL 語句和 COMMIT TRANSACTION 語句)繼續(xù)完成事務,或者必須(通過將事務回滾到其起始點)完全取消事務。若要取消整個事務,請使用 ROLLBACK TRANSACTION transaction_name 格式。這將撤消事務的所有語句和過程。



    在由 BEGIN DISTRIBUTED TRANSACTION 顯式啟動或從本地事務升級而來的分布式事務中,不支持 SAVE TRANSACTION。



    重要  當事務開始時,將一直控制事務中所使用的資源直到事務完成(也就是鎖定)。當將事務的一部分回滾到保存點時,將繼續(xù)控制資源直到事務完成(或者回滾全部事務)。



    權限


    默認情況下,將 SAVE TRANSACTION 權限授予任何有效用戶。



    示例


    下例更改分給 The Gourmet Microwave 的兩位作者的版稅。數(shù)據(jù)庫將會在兩個更新間不一致,因此必須將它們分組為用戶定義的事務。



    BEGIN TRANSACTION royaltychange
      UPDATE titleauthor
        SET royaltyper = 65
          FROM titleauthor, titles
            WHERE royaltyper = 75
              AND titleauthor.title_id = titles.title_id
              AND title = 'The Gourmet Microwave'
      UPDATE titleauthor
        SET royaltyper = 35
          FROM titleauthor, titles
            WHERE royaltyper = 25
              AND titleauthor.title_id = titles.title_id
              AND title = 'The Gourmet Microwave'
    SAVE TRANSACTION percentchanged

    /*
    After having updated the royaltyper entries for the two authors, the
    user inserts the savepoint percentchanged, and then determines how a
    10-percent increase in the book's price would affect the authors' royalty earnings.
    */


    UPDATE titles
      SET price = price * 1.1
        WHERE title = 'The Gourmet Microwave'
    SELECT (price * royalty * ytd_sales) * royaltyper
      FROM titles, titleauthor
        WHERE title = 'The Gourmet Microwave'
          AND titles.title_id = titleauthor.title_id
    /*
    The transaction is rolled back to the savepoint
    with the ROLLBACK TRANSACTION statement.

    */

    ROLLBACK TRANSACTION percentchanged
    COMMIT TRANSACTION

    /* End of royaltychange. */
    相關文章
    本頁查看次數(shù):