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

精品国产亚洲一区二区三区,男女作爱在线观看免费网站,欧美的又大又长做禁片A片,97国产精品人妻无码久久久

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

    在事務(wù)內(nèi)設(shè)置保存點(diǎn)。



    語(yǔ)法


    SAVE TRAN [ SACTION ] { savepoint_name | @savepoint_variable }



    參數(shù)


    savepoint_name



    是指派給保存點(diǎn)的名稱。保存點(diǎn)名稱必須符合標(biāo)識(shí)符規(guī)則,但只使用前 32 個(gè)字符。



    @savepoint_variable



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



    注釋


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



    在由 BEGIN DISTRIBUTED TRANSACTION 顯式啟動(dòng)或從本地事務(wù)升級(jí)而來(lái)的分布式事務(wù)中,不支持 SAVE TRANSACTION。



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



    權(quán)限


    默認(rèn)情況下,將 SAVE TRANSACTION 權(quán)限授予任何有效用戶。



    示例


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



    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. */
    相關(guān)文章
    本頁(yè)查看次數(shù):