FIX: 错误消息: SQL Server 2000 SP3 中出现"无效的键列信息的更新"

文章翻译 文章翻译
文章编号: 814893 - 查看本文应用于的产品
本文已归档。它按“原样”提供,并且不再更新。
在 SP4 中的 CPR-SQL 2000-修补程序
错误 #: 364087 (SHILOH_BUGS)
展开全部 | 关闭全部

本文内容

症状

应用了下列选项之一后
  • 中所述的修补程序
    321541FIX: SQL Server 可能返回错误结果使用的外部联接和视图时
    在计算机上正在运行 Microsoft SQL Server 2000 Service Pack 2 (SP2)。
  • Microsoft Security Bulletin MS02-061 所述的 Microsoft SQL Server 2000 SP2 此安全修补程序。
  • Microsoft SQL Server 2000 Service Pack 3 (SP3)。
您可能会收到以下错误消息:
没有足够的键列信息更新或刷新。

解决方案

服务包信息

若要解决此问题,获得最新的 service pack,对于 Microsoft SQL Server 2000。有关更多的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
290211如何获取最新的 SQL Server 2000 服务包

修补程序信息

此修补程序的英文版具有的文件属性 (或更新的文件属性) 在下表中列出。其格式为协调通用时间 (UTC) 列出日期和时间对这些文件。当您查看文件信息时,将转换为本地时间。若要 UTC 与本地时间之间的时差使用控制面板中的日期和时间工具中的 时区 选项卡。
   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     
				
注意由于存在文件依赖性最新的修补程序或功能,它包含该文件可能还包含其他文件。

状态

Microsoft 已经确认这是在"适用于"一节中列出的 Microsoft 产品中的问题。Microsoft SQL Server 2000 Service Pack 4 中,第一次已得到纠正此问题。

更多信息

在这篇文章中讨论了此修补程序 regresses 解决以下 Microsoft 知识库文章中讨论的修补程序:
321541FIX: SQL Server 可能返回错误结果使用的外部联接和视图时


注意为了此操作这篇文章中讨论的修补程序中,您必须启用跟踪标记-T220,并重新启动 SQL Server。

若要能够跟踪标志,请按照下列步骤操作:
  1. 在服务器上打开 SQL 企业管理器。
  2. 单击以选中遇到该问题的服务器。
  3. 用鼠标右键单击服务器,然后单击 属性
  4. 常规 选项卡上单击 启动参数
  5. 启动参数 对话框中键入 -T220,然后单击 添加
  6. 单击 确定
  7. 停止,然后重新启动 Mssqlserver 服务重新启动 SQL Server。

该问题的一个示例,哪种跟踪标记-T220 不会跟随。
该示例使用名为 Test_Table1Test_Table2 的两个示例表。请考虑下面的表和视图:
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
现在,运行此代码:
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
  • 该代码将 SQL Server 2000 版本之前 SQL Server 2000 SP2,与在 Microsoft Security Bulletin MS02-061 安装,讨论此安全修补程序成功运行。
  • SQL Server 2000 SP2 之后, 与在 Microsoft Security Bulletin MS02-061 安装,讨论此安全修补程序的所有 SQL Server 2000 版本的代码不能成功运行。
  • 对于 SQL Server 2000 版本 8.00.0769 和更高版本中,当您使用跟踪标记-T220 或 DBCC traceon (220)、 代码成功运行。
此外请注意在 SELECT 语句并不赋予相同的结果。
  • 对于 SQL Server 2000 版本之前 SQL Server 2000 SP2,与在 Microsoft Security Bulletin MS02-061 安装中, 讨论的安全修补程序的跟踪标志 220,张贴 8.00.0769 内容,结果是类似于:

    CODE        DESCRIPTION                                        DESCRIPTION_DEF                                    
    ----------- -------------------------------------------------- -------------------------------------------------- 
    1           NULL                                               DEFAULT
    
    
  • 对于在 Microsoft Security Bulletin MS02-061 安装,讨论此安全修补程序后 SQL Server 2000 SP2,SQL Server 2000 版本,结果是类似于:

    CODE        DESCRIPTION                                        DESCRIPTION_DEF                                    
    ----------- -------------------------------------------------- -------------------------------------------------- 
    1           NULL                                               NULL
    

属性

文章编号: 814893 - 最后修改: 2014年2月26日 - 修订: 4.2
这篇文章中的信息适用于:
  • Microsoft SQL Server 2000 Service Pack 3
关键字:?
kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbqfe kbsqlserv2000presp4fix kbfix kbbug KB814893 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 814893
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