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

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

    將顯式事務(wù)或隱性事務(wù)回滾到事務(wù)的起點(diǎn)或事務(wù)內(nèi)的某個(gè)保存點(diǎn)。



    語法


    ROLLBACK [ TRAN [ SACTION ]

        [ transaction_name | @tran_name_variable

        | savepoint_name | @savepoint_variable ] ]



    參數(shù)


    transaction_name



    是給 BEGIN TRANSACTION 上的事務(wù)指派的名稱。transaction_name 必須符合標(biāo)識(shí)符規(guī)則,但只使用事務(wù)名稱的前 32 個(gè)字符。嵌套事務(wù)時(shí),transaction_name 必須是來自最遠(yuǎn)的 BEGIN TRANSACTION 語句的名稱。



    @tran_name_variable



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



    savepoint_name



    是來自 SAVE TRANSACTION 語句的 savepoint_namesavepoint_name 必須符合標(biāo)識(shí)符規(guī)則。當(dāng)條件回滾只影響事務(wù)的一部分時(shí)使用 savepoint_name。



    @savepoint_variable



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



    注釋


    ROLLBACK TRANSACTION 清除自事務(wù)的起點(diǎn)或到某個(gè)保存點(diǎn)所做的所有數(shù)據(jù)修改。ROLLBACK 還釋放由事務(wù)控制的資源。



    不帶 savepoint_nametransaction_name 的 ROLLBACK TRANSACTION 回滾到事務(wù)的起點(diǎn)。嵌套事務(wù)時(shí),該語句將所有內(nèi)層事務(wù)回滾到最遠(yuǎn)的 BEGIN TRANSACTION 語句。在這兩種情況下,ROLLBACK TRANSACTION 均將 @@TRANCOUNT 系統(tǒng)函數(shù)減為 0。ROLLBACK TRANSACTION savepoint_name 不減少 @@TRANCOUNT。



    ROLLBACK TRANSACTION 語句若指定 savepoint_name 則不釋放任何鎖。



    在由 BEGIN DISTRIBUTED TRANSACTION 顯式啟動(dòng)或從本地事務(wù)升級(jí)而來的分布式事務(wù)中,ROLLBACK TRANSACTION 不能引用 savepoint_name。



    在執(zhí)行 COMMIT TRANSACTION 語句后不能回滾事務(wù)。



    在事務(wù)內(nèi)允許有重復(fù)的保存點(diǎn)名稱,但 ROLLBACK TRANSACTION 若使用重復(fù)的保存點(diǎn)名稱,則只回滾到最近的使用該保存點(diǎn)名稱的 SAVE TRANSACTION。



    在存儲(chǔ)過程中,不帶 savepoint_nametransaction_name 的 ROLLBACK TRANSACTION 語句將所有語句回滾到最遠(yuǎn)的 BEGIN TRANSACTION。在存儲(chǔ)過程中,ROLLBACK TRANSACTION 語句使 @@TRANCOUNT 在觸發(fā)器完成時(shí)的值不同于調(diào)用該存儲(chǔ)過程時(shí)的 @@TRANCOUNT 值,并且生成一個(gè)信息。該信息不影響后面的處理。



    如果在觸發(fā)器中發(fā)出 ROLLBACK TRANSACTION:


    • 將回滾對(duì)當(dāng)前事務(wù)中的那一點(diǎn)所做的所有數(shù)據(jù)修改,包括觸發(fā)器所做的修改。



    • 觸發(fā)器繼續(xù)執(zhí)行 ROLLBACK 語句之后的所有其余語句。如果這些語句中的任意語句修改數(shù)據(jù),則不回滾這些修改。執(zhí)行其余的語句不會(huì)激發(fā)嵌套觸發(fā)器。



    • 在批處理中,不執(zhí)行所有位于激發(fā)觸發(fā)器的語句之后的語句。



    每次進(jìn)入觸發(fā)器,@@TRANCOUNT 就增加 1,即使在自動(dòng)提交模式下也是如此。(系統(tǒng)將觸發(fā)器視作隱性嵌套事務(wù)。)



    在存儲(chǔ)過程中,ROLLBACK TRANSACTION 語句不影響調(diào)用該過程的批處理中的后續(xù)語句;將執(zhí)行批處理中的后續(xù)語句。在觸發(fā)器中,ROLLBACK TRANSACTION 語句終止含有激發(fā)觸發(fā)器的語句的批處理;不執(zhí)行批處理中的后續(xù)語句。



    ROLLBACK TRANSACTION 語句不生成顯示給用戶的信息。如果在存儲(chǔ)過程或觸發(fā)器中需要警告,請(qǐng)使用 RAISERROR 或 PRINT 語句。RAISERROR 是用于指出錯(cuò)誤的首選語句。



    ROLLBACK 對(duì)游標(biāo)的影響由下面三個(gè)規(guī)則定義:


    1. 當(dāng) CURSOR_CLOSE_ON_COMMIT 設(shè)置為 ON 時(shí),ROLLBACK 關(guān)閉但不釋放所有打開的游標(biāo)。



    2. 當(dāng) CURSOR_CLOSE_ON_COMMIT 設(shè)置為 OFF 時(shí),ROLLBACK 不影響任何打開的同步 STATIC 或 INSENSITIVE 游標(biāo),也不影響已完全填充的異步 STATIC 游標(biāo)。將關(guān)閉但不釋放任何其它類型的打開的游標(biāo)。



    3. 對(duì)于導(dǎo)致終止批處理并生成內(nèi)部回滾的錯(cuò)誤,將釋放在含有該錯(cuò)誤語句的批處理內(nèi)聲明的所有游標(biāo)。不論游標(biāo)的類型或 CURSOR_CLOSE_ON_COMMIT 的設(shè)置,所有游標(biāo)均將被釋放,其中包括在該錯(cuò)誤批處理所調(diào)用的存儲(chǔ)過程內(nèi)聲明的游標(biāo)。在該錯(cuò)誤批處理之前的批處理內(nèi)聲明的游標(biāo)以規(guī)則 1 和 2 為準(zhǔn)。死鎖錯(cuò)誤就屬于這類錯(cuò)誤。在觸發(fā)器中發(fā)出的 ROLLBACK 語句也自動(dòng)生成這類錯(cuò)誤。



    權(quán)限


    ROLLBACK TRANSACTION 權(quán)限默認(rèn)授予任何有效用戶。

    相關(guān)文章
    本頁查看次數(shù):