FIX: SELECT INTO 鎖定行為

文章翻譯 文章翻譯
文章編號: 153441 - 檢視此文章適用的產品。
本文已封存。本文係以「現狀」提供且不會再更新。
Bug #: 14818 (DCR 6.50)
全部展開 | 全部摺疊

結論

SQL Server 6.5 內 SELECT INTO 包裝在交易內。使用 SELECT INTO 所建立的資料表保有 ACID (不可部分完成性、 一致性、 隔離、 耐久性) 交易屬性。這也表示系統資源,例如網頁、 範圍和鎖定,會一直保留 SELECT INTO 陳述式的持續期間。使用較大的系統物件這會導致條件許多內部工作可以封鎖的其他使用者執行 SELECT INTO 陳述式。比方說高活動伺服器上有許多使用者執行 [SQL 企業管理員] 工具來監視系統處理程序可以封鎖上彼此,可通往某條件 SEM 應用程式似乎停止回應。

其他相關資訊

當您升級到 SQL Server 6.5 Service Pack 1 時,SELECT INTO 鎖定特性會是系統可設定的功能。換行之 SELECT INTO 與交易保持預設的行為。為祝不以保存系統的設定,型錄鎖定活動的使用者已加入追蹤旗標允許這類作業。若要將追蹤旗標啟動與-T5302 命令列參數,或從伺服器查詢視窗中使用下列命令:
dbcc traceon (3604)
go
dbcc traceon (5302)
go
				

當 5302 追蹤旗標套用一個 SELECT INTO 失敗仍然被建立資料表。請注意伺服器內的所有資料庫則會都套用您所選取的鎖定行為。



請務必瞭解即使有了追蹤旗標 5302 啟用,如果一個 SELECT INTO 在 SQL Server 6.5 內執行明確的交易 (亦即 BEGIN TRAN) 的內容,系統資料表仍被鎖定直到交易完成為止。這是因為即使追蹤旗標,可讓伺服器 2 的作業中執行之 SELECT INTO,建立目標資料表階段是作用中交易內的 DDL 陳述式。

在交易內任何 CREATE TABLE 陳述式將會保留於 sysobjects、 sysindexes,以及 syscolumns EX_PAGE 鎖定。SQL Server 6.0 不允許 SELECT INTO 來執行使用者定義的外顯交易的一部份。 嘗試執行這項操作,會導致訊息 226"SELECT INTO 命令多陳述式的交易內不允許 」。

注意:這個問題不會套用至 SQL Server 7.0 與更新版本。

屬性

文章編號: 153441 - 上次校閱: 2013年10月1日 - 版次: 3.1
這篇文章中的資訊適用於:
  • Microsoft SQL Server 6.5 Standard Edition
關鍵字:?
kbnosurvey kbarchive kbmt kbfix kbnetwork KB153441 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:153441
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com