<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-86  評(píng)論-33  文章-0  trackbacks-0

    事務(wù)定義:

    事務(wù)是單個(gè)的工作單元。如果某一事務(wù)成功,則在該事務(wù)中進(jìn)行的所有數(shù)據(jù)更改均會(huì)

    提交,成為數(shù)據(jù)庫中的永久組成部分。如果事務(wù)遇到錯(cuò)誤且必須取消或回滾,則所有

    數(shù)據(jù)更改均被清除。

    事務(wù)三種運(yùn)行模式:
    自動(dòng)提交事務(wù)
    每條單獨(dú)的語句都是一個(gè)事務(wù)。
    顯式事務(wù)
    每個(gè)事務(wù)均以 BEGIN TRANSACTION 語句顯式開始,
    COMMIT ROLLBACK 語句顯式結(jié)束。
    隱性事務(wù)
    在前一個(gè)事務(wù)完成時(shí)新事務(wù)隱式啟動(dòng),但每個(gè)事務(wù)仍以 COMMIT ROLLBACK 語句

    顯式完成。

    事務(wù)操作的語法:

    BEGIN TRANSACTION
    BEGIN DISTRIBUTED TRANSACTION
    COMMIT TRANSACTION
    COMMIT WORK
    ROLLBACK WORK
    SAVE TRANSACTION
    BEGIN TRANSACTION

    BEGIN TRANSACTION
    標(biāo)記一個(gè)顯式本地事務(wù)的起始點(diǎn)。

    BEGIN TRANSACTION @@TRANCOUNT 1

    BEGIN TRANSACTION 代表一點(diǎn),由連接引用的數(shù)據(jù)在該點(diǎn)是邏輯和物理上都一致的。如果遇上錯(cuò)誤,在 BEGIN TRANSACTION 之后的所有數(shù)據(jù)改動(dòng)都能進(jìn)行回滾,以將數(shù)據(jù)返回到已知的一致狀態(tài) 。每個(gè)事務(wù)繼續(xù)執(zhí)行直到它無誤地完成并且用 COMMIT TRANSACTION 對(duì)數(shù)據(jù)庫作永久的改動(dòng),或者遇上錯(cuò)誤并且用 ROLLBACK TRANSACTION 語句擦除所有改動(dòng)

    語法
    BEGIN TRAN [ SACTION ] [ transaction_name | @tran_name_variable [ WITH MARK [ 'description' ] ] ]

    例子:
    BEGIN TRAN T1
    UPDATE table1 ...
    --nest transaction M2
    BEGIN TRAN M2 WITH MARK
    UPDATE table2 ...
    SELECT * from table1
    COMMIT TRAN M2
    UPDATE table3 ...
    COMMIT TRAN T1

    BEGIN DISTRIBUTED TRANSACTION
    指定一個(gè)由 Microsoft 分布式事務(wù)處理協(xié)調(diào)器 (MS DTC) 管理的 Transact-SQL 分布式事務(wù)的起始。

    語法
    BEGIN DISTRIBUTED TRAN [ SACTION ]
    [ transaction_name | @tran_name_variable ]

    參數(shù)
    transaction_name
    是用戶定義的事務(wù)名,用于跟蹤 MS DTC 實(shí)用工具中的分布式事務(wù)。 transaction_name 必須符合標(biāo)識(shí)符規(guī)則,但是僅使用頭 32 個(gè)字符

    @tran_name_variable
    是用戶定義的一個(gè)變量名,它含有一個(gè)事務(wù)名,該事務(wù)名用于跟蹤 MS DTC 實(shí)用工具中的分布式事務(wù)。必須用 char varchar nchar nvarchar 數(shù)據(jù)類型聲明該變量。

    注釋
    執(zhí)行 BEGIN DISTRIBUTED TRANSACTION 語句的服務(wù)器是事務(wù)創(chuàng)建人,并且控制事務(wù)的完成

    當(dāng)連接發(fā)出后續(xù) COMMIT TRANSACTION ROLLBACK TRANSACTION 語句時(shí),
    主控服務(wù)器請(qǐng)求 MS DTC 在所涉及的服務(wù)器間管理分布式事務(wù)的完成。
    有兩個(gè)方法可將遠(yuǎn)程 SQL 服務(wù)器登記在一個(gè)分布式事務(wù)中:

    分布式事務(wù)中已登記的連接執(zhí)行一個(gè)遠(yuǎn)程存儲(chǔ)過程調(diào)用,該調(diào)用引用一個(gè)遠(yuǎn)程服務(wù)器。
    分布式事務(wù)中已登記的連接執(zhí)行一個(gè)分布式查詢,該查詢引用一個(gè)遠(yuǎn)程服務(wù)器。

    示例
    本例在本地和遠(yuǎn)程數(shù)據(jù)庫上更新作者的姓。本地和遠(yuǎn)程數(shù)據(jù)庫將同時(shí)提交或同時(shí)回滾本事務(wù)。

    說明
    當(dāng)前的 SQL Server 上必須安裝 MS DTC.

    USE pubs
    GO
    BEGIN DISTRIBUTED TRANSACTION
    UPDATE authors
    SET au_lname = 'McDonald' WHERE au_id = '409-56-7008'
    EXECUTE
    link_Server_T .pubs.dbo.changeauth_lname '409-56-7008','McDonald'
    COMMIT TRAN
    GO
    Note:
    如果需要連接遠(yuǎn)程 DB, 如果是 linkServer 方式連接的話,一定要修該 linkServer RPC 選項(xiàng)置為 True

    SET XACT_ABORT
    指定當(dāng) Transact-SQL 語句產(chǎn)生運(yùn)行時(shí)錯(cuò)誤時(shí), Microsoft? SQL Server? 是否自動(dòng)回滾當(dāng)前事務(wù)。

    ( 可以比較簡(jiǎn)單的理解,如果中間有任何一句 SQL 出錯(cuò),所有 SQL 全部回滾 . 特別適用于 Procedure 中間調(diào)用 Procedure ,如果第一個(gè) Procedure Ok ,被調(diào)用的 Procedure 中間有錯(cuò)誤,如果 SET XACT_ABORT=false ,則出錯(cuò)的部分回滾,其他部分提交,當(dāng)然外部 Procedure 也提交。) .

    --- 在分布式 Trans 中一定要注意設(shè)置下面參數(shù) (XACT_ABORT)

    語法 SET XACT_ABORT { ON | OFF }

    注釋 當(dāng) SET XACT_ABORT ON 時(shí),如果 Transact-SQL 語句產(chǎn)生運(yùn)行時(shí)錯(cuò)誤,整個(gè)事務(wù)將終止并回滾。為 OFF 時(shí),只回滾產(chǎn)生錯(cuò)誤的 Transact-SQL 語句,而事務(wù)將繼續(xù)進(jìn)行處理。編譯錯(cuò)誤(如語法錯(cuò)誤)不受 SET XACT_ABORT 的影響。

    對(duì)于大多數(shù) OLE DB 提供程序(包括 SQL Server ),隱性或顯式事務(wù)中的數(shù)據(jù)修改語句必須將 XACT_ABORT 設(shè)置為 ON

    SET XACT_ABORT 的設(shè)置是在執(zhí)行或運(yùn)行時(shí)設(shè)置,而不是在分析時(shí)設(shè)置。

    示例 下例導(dǎo)致在含有其它 Transact-SQL 語句的事務(wù)中發(fā)生違反外鍵錯(cuò)誤。在第一個(gè)語句集中產(chǎn)生錯(cuò)誤,但其它語句均成功執(zhí)行且事務(wù)成功
    提交。在第二個(gè)語句集中, SET XACT_ABORT 設(shè)置為 ON 。這導(dǎo)致語句錯(cuò)誤使批處理終止,并使事務(wù)回滾。

    CREATE TABLE t1 (a int PRIMARY KEY)
    CREATE TABLE t2 (a int REFERENCES t1(a))
    GO
    INSERT INTO t1 VALUES (1)
    INSERT INTO t1 VALUES (3)
    INSERT INTO t1 VALUES (4)
    INSERT INTO t1 VALUES (6)
    GO
    SET XACT_ABORT OFF
    GO
    BEGIN TRAN
    INSERT INTO t2 VALUES (1)
    INSERT INTO t2 VALUES (2) /* Foreign key error */
    INSERT INTO t2 VALUES (3)
    COMMIT TRAN
    GO

    SET XACT_ABORT ON
    GO

    BEGIN TRAN
    INSERT INTO t2 VALUES (4)
    INSERT INTO t2 VALUES (5) /* Foreign key error */
    INSERT INTO t2 VALUES (6)
    COMMIT TRAN
    GO

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

    語法 SAVE TRAN [ SACTION ] { savepoint_name | @savepoint_variable }
    參數(shù) savepoint_name
    是指派給保存點(diǎn)的名稱。保存點(diǎn)名稱必須符合標(biāo)識(shí)符規(guī)則,但只使用前 32 個(gè)字符。
    @savepoint_variable
    是用戶定義的、含有有效保存點(diǎn)名稱的變量的名稱。
    必須用 char varchar nchar nvarchar 數(shù)據(jù)類型聲明該變量。 注釋
    用戶可以在事務(wù)內(nèi)設(shè)置保存點(diǎn)或標(biāo)記。保存點(diǎn)定義如果有條件地取消事務(wù)的一部分,事 務(wù)可以返回的位置。如果將事務(wù)回滾到保存點(diǎn),則必須(如果需要,使用更多的 Transact-SQL 語句和 COMMIT TRANSACTION 語句)繼續(xù)完成事務(wù),或者必須(通過將事務(wù)回滾到其起始點(diǎn))完全取消事務(wù)。若要取消整個(gè)事務(wù),請(qǐng)使用 ROLLBACK TRANSACTION transaction_name 格式。這將撤消事務(wù)的所 有語句和過程。

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

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

    例子: begin transaction
    save transaction A
    insert into demo values('BB','B term')
    rollback TRANSACTION A
    create table demo2(name varchar(10),age int)
    insert into demo2(name,age) values('lis',1)
    commit transaction

    ROLLBACK TRANSACTION

    將顯式事務(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 varchar nchar nvarchar 數(shù)據(jù)類型聲明該變量。
    savepoint_name
    是來自 SAVE TRANSACTION 語句的 savepoint_name savepoint_name 必須符合標(biāo)識(shí)符規(guī)則。當(dāng)條件回滾只影響事務(wù)的一部分時(shí)使 savepoint_name
    @savepoint_variable
    是用戶定義的、含有有效保存點(diǎn)名稱的變量的名稱。必須用 char varchar nchar nvarchar 數(shù)據(jù)類型聲明該變量。

    注釋 ROLLBACK TRANSACTION 清除自事務(wù)的起點(diǎn)或到某個(gè)保存點(diǎn)所做的所有數(shù)據(jù)修改。 ROLLBACK 還釋放由事務(wù)控制的資源。
    不帶 savepoint_name transaction_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

    Note:
    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_name transaction_name ROLLBACK TRANSACTION 語句將所有語句回滾到最遠(yuǎn)的 BEGINTRANSACTION 。在存儲(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ī)則定義:
    當(dāng) CURSOR_CLOSE_ON_COMMIT 設(shè)置為 ON 時(shí),ROLLBACK 關(guān)閉但不釋放所有打開的游標(biāo)。
    當(dāng) CURSOR_CLOSE_ON_COMMIT 設(shè)置為 OFF 時(shí),ROLLBACK 不影響任何打開的同步 STATIC 或 INSENSITIVE 游標(biāo)不影響已完全填充的異步 STATIC 游標(biāo)。將關(guān)閉但不釋放任何其它類型的打開的游標(biāo)。
    對(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)授予任何有效用戶。
    例子:

    begin transaction
    save transaction A
    insert into demo values('BB','B term')
    rollback TRANSACTION A

    -- select * into demo2 from demo1

    create table demo2(name varchar(10),age int)
    insert into demo2(name,age) values('lis',1)
    rollback transaction

    COMMIT TRANSACTION
    標(biāo)志一個(gè)成功的隱性事務(wù)或用戶定義事務(wù)的結(jié)束。如果 @@TRANCOUNT 1 COMMIT

    TRANSACTION 使得自從事務(wù)開始以來所執(zhí)行的 所有數(shù)據(jù)修改成為數(shù)據(jù)庫的永久部分,釋放連接

    占用的資源,并將 @@TRANCOUNT 減少到 0 。如果 @@TRANCOUNT 大于 1 ,則 COMMIT

    TRANSACTION 使 @@TRANCOUNT 1 遞減。

    只有當(dāng)事務(wù)所引用的所有數(shù)據(jù)的邏輯都正確時(shí),發(fā)出 COMMIT TRANSACTION 命令。
    COMMIT WORK
    標(biāo)志事務(wù)的結(jié)束。
    語法
    COMMIT [ WORK ]

    注釋
    此語句的功能與 COMMIT TRANSACTION 相同,但 COMMIT TRANSACTION 接受用戶定義的事務(wù)

    名稱。這個(gè)指定或沒有指定可選關(guān)鍵字 WORK COMMIT 語法與 SQL-92 兼容

    例子
    begin transaction a
    insert into demo values('BB','B term')
    commit TRANSACTION A

    隱性事務(wù)
    當(dāng)連接以隱性事務(wù)模式進(jìn)行操作時(shí), SQL Server 將在提交或回滾當(dāng)前事務(wù)后自動(dòng)啟動(dòng)新事務(wù)。無須描述事務(wù)的開始,只需提交或

    回滾每個(gè)事務(wù)。隱性事務(wù)模式生成連續(xù)的事務(wù)鏈。

    在為連接將隱性事務(wù)模式設(shè)置為打開之后,當(dāng) SQL Server 首次執(zhí)行下列任何語句時(shí),都會(huì)自動(dòng)啟動(dòng)一個(gè)事務(wù):

     

    ALTER TABLE

    INSERT

     

    CREATE

    OPEN

     

    DELETE

    REVOKE

     

    DROP

    SELECT

     

    FETCH

    TRUNCATE TABLE

     

    GRANT

    UPDATE

    在發(fā)出 COMMIT ROLLBACK 語句之前,該事務(wù)將一直保持有效。在第一個(gè)事務(wù)被提交或回滾之后,下次當(dāng)連接執(zhí)行這些語句

    中的任何語句時(shí), SQL Server 都將自動(dòng)啟動(dòng)一個(gè)新事務(wù)。 SQL Server 將不斷地生成一個(gè)隱性事務(wù)鏈,

    直到隱性事務(wù)模式關(guān)閉為止

    例子:
    begin transaction
    save transaction A

    insert into demo values('BB','B term')
    rollback TRANSACTION A

    create table demo2(name varchar(10),age int)
    insert into demo2(name,age) values('lis',1)
    rollback transaction
    --
    Create table demo2 時(shí) SQL Server 已經(jīng)隱式創(chuàng)建一個(gè) Trans, 知道提交或回滾

    嵌套事務(wù)處理 :

    1 Trans 嵌套,將內(nèi)部的 trans 合并到外部并形成一個(gè) Trans.

    begin tran t1

    ----In the first trans .
    Insert into demo2(name,age) values('lis',1)

    ---Second Trans begin transaction t2
    insert into demo values('BB','B term')
    commit transaction t2

    ----In the first trans .
    Insert into demo2(name,age) values('lis',2)
    rollback transaction t1

    Note:

    在一系列嵌套的事務(wù)中用一個(gè)事務(wù)名給多個(gè)事務(wù)命名對(duì)該事務(wù)沒有什么影響。系統(tǒng)僅登記第一個(gè)(最外部的)事務(wù)名。回滾

    到其它任何名字(有效的保存點(diǎn)名除外)都會(huì)產(chǎn)生錯(cuò)誤

    事實(shí)上,任何在回滾之前執(zhí)行的語句都沒有在錯(cuò)誤發(fā)生時(shí)回滾。這語句僅當(dāng)外層的事務(wù)回滾時(shí)才會(huì)進(jìn)行回滾。

    例:內(nèi)部事務(wù)回滾 SQL server 報(bào)錯(cuò)。

    begin tran t1
    Insert into demo2(name,age) values('lis',1)
    ---Second Trans

    --Server: Msg 6401, Level 16, State 1, Line 6
    ---Cannot roll back t2. No transaction or savepoint of that name was found.
    begin transaction t2
    insert into demo values('BB','B term')
    rollback transaction t2

    ----In the first trans .
    Insert into demo2(name,age) values('lis',2)
    commit transaction t1

    例: 內(nèi)部事務(wù)提交 SQL server 不會(huì)報(bào)錯(cuò)。

    begin tran t1
    Insert into demo2(name,age) values('lis',1)
    ---Second Trans no error
    begin transaction t2
    insert into demo values('BB','B term')
    commit transaction t2

    ----In the first trans .
    Insert into demo2(name,age) values('lis',2)
    commit transaction t1

    SQL Server 的隔離級(jí)別:

    1: 設(shè)置 TimeOut 參數(shù)

    Set Lock_TimeOut 5000

    被鎖超時(shí) 5 秒將自動(dòng)解鎖

    Set Lock_TimeOut 0

    產(chǎn)立即解鎖,返回 Error 默認(rèn)為 -1 ,無限等待

    2

    (SET TRANSACTION ISOLATION LEVEL
    { READ COMMITTED
    | READ UNCOMMITTED
    | REPEATABLE READ | SERIALIZABLE
    }

    READ COMMITTED

    指定在讀取數(shù)據(jù)時(shí)控制共享鎖以避免臟讀,但數(shù)據(jù)可在事務(wù)結(jié)束前更改,從而產(chǎn)生不可重復(fù)讀取或

    幻像數(shù)據(jù)。該選項(xiàng)是 SQL Server 的默認(rèn)值。

    避免臟讀,并在其他 session 在事務(wù)中不能對(duì)已有數(shù)據(jù)進(jìn)行修改。共享鎖。

    READ UNCOMMITTED

    執(zhí)行臟讀或 0 級(jí)隔離鎖定,這表示不發(fā)出共享鎖,也不接受排它鎖。當(dāng)設(shè)置該選項(xiàng)時(shí),可以對(duì)數(shù)

    據(jù)執(zhí)行未提交讀或臟讀;在事務(wù)結(jié)束前可以更改數(shù)據(jù)內(nèi)的數(shù)值,行也可以出現(xiàn)在數(shù)據(jù)集中或從數(shù)據(jù)

    集消失。該選項(xiàng)的作用與在事務(wù)內(nèi)所有語句中的所有表上設(shè)置 NOLOCK 相同。這是四個(gè)隔離級(jí)別中

    限制最小的級(jí)別。

    REPEATABLE READ

    鎖定查詢中使用的所有數(shù)據(jù)以防止其他用戶更新數(shù)據(jù),但是其他用戶可以將新的幻像行插入數(shù)據(jù)

    集,且幻像行包括在當(dāng)前事務(wù)的后續(xù)讀取中。因?yàn)椴l(fā)低于默認(rèn)隔離級(jí)別,所以應(yīng)只在必要時(shí)才使

    用該選項(xiàng)。

    SERIALIZABLE

    在數(shù)據(jù)集上放置一個(gè)范圍鎖,以防止其他用戶在事務(wù)完成之前更新數(shù)據(jù)集或?qū)⑿胁迦霐?shù)據(jù)集內(nèi)。這

    是四個(gè)隔離級(jí)別中限制最大的級(jí)別。因?yàn)椴l(fā)級(jí)別較低,所以應(yīng)只在必要時(shí)才使用該選項(xiàng)。該選項(xiàng)

    的作用與在事務(wù)內(nèi)所有 SELECT 語句中的所有表上設(shè)置 HOLDLOCK 相同。

    posted on 2006-08-04 09:45 Derek.Guo 閱讀(1042) 評(píng)論(0)  編輯  收藏 所屬分類: Database
    MSN:envoydada@hotmail.com QQ:34935442
    主站蜘蛛池模板: 亚洲日本一线产区和二线| 久久青青草原国产精品免费| 亚洲视频在线观看一区| 国产又粗又长又硬免费视频 | 久久国产色AV免费看| 国产偷国产偷亚洲高清人| 亚洲精品国产手机| 久久99国产亚洲高清观看首页| 免费鲁丝片一级在线观看| 7x7x7x免费在线观看| 国产三级在线免费观看| 深夜福利在线免费观看| 国产亚洲精品成人AA片| 亚洲小说图片视频| 亚洲va在线va天堂va不卡下载| 中文字幕亚洲专区| 四虎影在线永久免费四虎地址8848aa| 欧洲乱码伦视频免费| 91短视频在线免费观看| 无码国产精品一区二区免费3p| 国产精品综合专区中文字幕免费播放| www亚洲精品久久久乳| 亚洲人成色在线观看| 亚洲乱码在线卡一卡二卡新区| 亚洲精品电影天堂网| 久久亚洲AV成人无码电影| 91情国产l精品国产亚洲区 | 黄色网站软件app在线观看免费 | 亚洲精品在线免费观看| 国产高清不卡免费视频| 免费国产成人午夜在线观看| caoporn成人免费公开| 一级片在线免费看| free哆拍拍免费永久视频| 一级做a毛片免费视频| ssswww日本免费网站片| 久久性生大片免费观看性| eeuss影院ss奇兵免费com| 4hu四虎免费影院www| 丰满人妻一区二区三区免费视频 | 国产亚洲人成A在线V网站|