Article ID: 814893
Article Last Modified on 2/21/2007
APPLIES TO
- Microsoft SQL Server 2000 Service Pack 3
CPR - SQL 2000 - Hotfix in SP4
BUG #: 364087 (SHILOH_BUGS)
SYMPTOMS
After you apply one of the following
- The hotfix described in
321541 FIX: SQL Server Might Return Incorrect Results When You Use an Outer Join and a View
- The security hotfix described in Microsoft Security Bulletin MS02-061 for Microsoft SQL Server 2000 SP2.
- Microsoft SQL Server 2000 Service Pack 3 (SP3).
you might receive the following error message:
RESOLUTION
Service pack information
To resolve this problem, obtain the latest service pack for Microsoft SQL Server 2000. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:
290211 How to obtain the latest SQL Server 2000 service pack
Hotfix information
The English version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in coordinated universal time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time tool in Control Panel.
Date Time Version Size File name ------------------------------------------------------------------ 08-Feb-2003 05:43 786,432 bytes Distmdl.ldf 08-Feb-2003 05:43 2,359,296 bytes Distmdl.mdf 01-Feb-2003 00:32 2000.80.763.0 1,557,052 bytes Dtsui.dll 30-Jan-2003 05:18 746,470 bytes Instdist.sql 08-Feb-2003 06:40 2000.80.765.0 90,692 bytes Msgprox.dll 08-Feb-2003 03:53 1,065,895 bytes Replmerg.sql 08-Feb-2003 06:40 2000.80.765.0 221,768 bytes Replprov.dll 08-Feb-2003 06:40 2000.80.765.0 307,784 bytes Replrec.dll 30-Jan-2003 05:18 1,084,318 bytes Replsys.sql 08-Feb-2003 06:40 2000.80.765.0 176,696 bytes Sqlmap70.dll 08-Feb-2003 06:40 2000.80.765.0 57,920 bytes Sqlrepss.dll 15-Feb-2003 02:52 2000.80.769.0 7,512,145 bytes Sqlservr.exe 15-Feb-2003 02:52 12,715,008 bytes Sqlservr.pdb 08-Feb-2003 06:40 2000.80.765.0 45,644 bytes Sqlvdi.dll 08-Feb-2003 06:40 2000.80.765.0 82,492 bytes Ssnetlib.dll
Note Because of file dependencies, the most recent hotfix or feature that contains the files may also contain additional files.
STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.This problem was first corrected in Microsoft SQL Server 2000 Service Pack 4.
MORE INFORMATION
The hotfix discussed in this article regresses the fix that is discussed in the following Microsoft Knowledge Base article:
321541 FIX: SQL Server Might Return Incorrect Results When You Use an Outer Join and a View
Note To make the hotfix discussed in this article operational, you must enable trace flag -T220, and restart SQL Server.
To enable the trace flag, follow these steps:
- Open SQL Enterprise Manager on the server.
- Click to select the server that is experiencing the problem.
- Right-click the server, and then click Properties.
- On the General tab, click Startup Parameters.
- In the Startup Parameters dialog box, type -T220, and then click Add.
- Click OK.
- Stop, and then restart the Mssqlserver service to restart SQL Server.
An example of the problem and what the trace flag -T220 does follows.
The example uses two sample tables named Test_Table1 and Test_Table2. Consider the following tables and view:
CREATE TABLE TEST_TABLE1 ( [CODE] [int] NOT NULL PRIMARY KEY, [DESCRIPTION] [varchar] (50)) CREATE TABLE TEST_TABLE2 ( [CODE] [int] NOT NULL PRIMARY KEY, [DESCRIPTION] [varchar] (50)) go CREATE VIEW dbo.TEST_VIEW AS SELECT CODE, UPPER(DESCRIPTION) AS DESCRIPTION, ISNULL(UPPER(DESCRIPTION), 'DEFAULT') DESCRIPTION_DEF FROM dbo.TEST_TABLE2 go
Now, run this code:
DECLARE cc CURSOR FOR SELECT TEST_TABLE1.CODE, TEST_VIEW.DESCRIPTION, TEST_VIEW.DESCRIPTION_DEF FROM TEST_TABLE1 LEFT OUTER JOIN TEST_VIEW ON TEST_VIEW.CODE = TEST_TABLE1.CODE FOR UPDATE
- For SQL Server 2000 versions before SQL Server 2000 SP2, with the security hotfix discussed in Microsoft Security Bulletin MS02-061 installed, the code runs successfully.
- For all SQL Server 2000 versions after SQL Server 2000 SP2, with the security hotfix discussed in Microsoft Security Bulletin MS02-061 installed, the code does not run successfully.
- For SQL Server 2000 versions 8.00.0769 and later, when you use trace flag -T220 or DBCC traceon (220), the code runs successfully.
Also note that the SELECT statement does not give the same result.
For SQL Server 2000 versions before SQL Server 2000 SP2, with the security hotfix discussed in Microsoft Security Bulletin MS02-061 installed, or post 8.00.0769 with trace flag 220, the result is similar to:
CODE DESCRIPTION DESCRIPTION_DEF ----------- -------------------------------------------------- -------------------------------------------------- 1 NULL DEFAULT
For SQL Server 2000 versions after SQL Server 2000 SP2, with the security hotfix discussed in Microsoft Security Bulletin MS02-061installed, the result is similar to:
CODE DESCRIPTION DESCRIPTION_DEF ----------- -------------------------------------------------- -------------------------------------------------- 1 NULL NULL
Keywords: kbhotfixserver kbqfe kbqfe kbsqlserv2000presp4fix kbfix kbbug KB814893