FIX: 伺服器端資料指標可能會傳回不正確的結果

文章翻譯 文章翻譯
文章編號: 286788 - 檢視此文章適用的產品。
BUG #: 351513 (Shiloh_bugs)
Bug #: 101092 (sqlbug_70)
全部展開 | 全部摺疊

在此頁中

徵狀

如果符合下列所有條件,動態或索引鍵集導向的伺服器端資料指標可能會傳回不正確的結果:
  • 查詢會使用 Sub-SELECT 陳述式,為資料行清單。
  • [Sub-SELECT 使用 COUNT(*) 函式。
  • [Sub-SELECT 具有與條件的 ANSI 聯結。
  • 外部的 FROM 子句表格有一個 Sub-SELECT 與 Transact-SQL 聯結。

解決方案

SQL Server 2000

如果要解決這個問題,取得最新的 Service Pack,SQL Server 2000。如需詳細資訊按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
290211INF: 如何取得最新的 SQL Server 2000 Service Pack

SQL Server 7.0

如果要解決這個問題,取得最新的 Service Pack,Microsoft SQL Server 7.0 的。如需詳細資訊按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
301511INF: 如何取得最新的 SQL Server 7.0 Service Pack

狀況說明

Microsoft 已確認這是在本文開頭所列之 Microsoft 產品中的問題。

SQL Server 2000
這個問題已經先在 SQL Server 2000 Service Pack 1 中獲得修正。

SQL Server 7.0
這個問題,首先已經在 Microsoft SQL Server 7.0 服務套件 4 中獲得修正。

其他相關資訊

如果要重現問題,執行此程式碼:
CREATE TABLE  TABLE1( T1COL1 int NOT NULL PRIMARY KEY)
go
CREATE TABLE  TABLE2(
 T2COL1 int NOT NULL PRIMARY KEY,
 T2COL2 int NOT NULL )
go

CREATE TABLE TABLE3(
	T3COL1 int NOT NULL)
go
Insert into TABLE1(T1COL1) values(4)
Insert into TABLE1(T1COL1) values(3)
Insert into TABLE2(T2COL1, T2COL2) values(5, 3)
Insert into TABLE2(T2COL1, T2COL2) values(6, 4)
Insert into TABLE3(T3COL1) values(6)
go

-------------- REPRO SCRIPT (Correct result would be 0,1) -------------
declare test cursor keyset for Select (select count(*)
      from dbo.TABLE2 as T2 join dbo.TABLE3 as T3 on T3.T3COL1 = T2.T2COL1
      where T2.T2COL2 = T1.T1COL1) as Para
 from dbo.TABLE1 as T1
open test
fetch test
fetch test
deallocate test


--------------- Workaround (Join condition moved to WHERE clause) ----------------
declare test cursor keyset local for Select (select count(*)
      from dbo.TABLE2 as T2, dbo.TABLE3 as T3 
      where T2.T2COL2 = T1.T1COL1 and T3.T3COL1 = T2.T2COL1) as Para
       from dbo.TABLE1 as T1

open test
fetch test
fetch test
deallocate test
				

屬性

文章編號: 286788 - 上次校閱: 2003年10月31日 - 版次: 3.2
這篇文章中的資訊適用於:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
關鍵字:?
kbmt kbbug kbfix kbsqlserv2000sp1fix KB286788 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:286788
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