FIX: 当数据在表中同一行中使用插入到 SQL Server 的一个实例的多个连接,断言错误时发生

文章翻译 文章翻译
文章编号: 885290 - 查看本文应用于的产品
错误 #: 354812 (SQL Server 8.0)

展开全部 | 关闭全部

本文内容

文章内容

概要

本文介绍以下有关此修补程序版本:
  • 此修补程序包修复的问题。
  • 安装此修补程序包的先决条件。
  • 在安装此修补程序包后,是否必须重新启动您的计算机。
  • 是否将修补程序软件包将替换为任何其他修补程序包。
  • 是否必须进行注册表中的任何更改。
  • 此修补程序包中包含的文件。



症状

当试图通过使用多个连接以 Microsoft SQL Server 的实例在一个表中的行中插入数据时您可能会 SQL Server 错误日志中收到下面的断言错误消息:
2001-06-18 21:33:32.87 spid55 SQL Server 肯定: 文件: <insert.c>,行 = 571
无法肯定 =-> indindid m_pIndex sdesP = = CLUSTIND。
2001-06-18 21:33:32.90 spid55 错误: 3624,严重性: 20,状态: 1。
如果满足下列所有条件都都为真,就会出现此问题:
  • 您尝试插入的数据是相同的数据中至少一个行中的列。
  • 在表中一个非聚集索引是在列中相同的数据的插入位置上定义的。
  • 通过使用 IGNORE_DUP_KEY 选项来创建此非聚集索引。
有关以前的修复程序的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
290211如何获取最新的 SQL Server 2000 服务包



原因

因为您插入的行插入索引页上最后一行中,将发生此问题。


解决方案

服务包信息

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

修补程序信息

系统必备组件

此修补程序需要 Microsoft SQL Server 2000 Service Pack 3 (SP3)。

有关如何获取 SQL Server 2000 Service Pack 3 的详细信息单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
290211如何获取最新的 SQL Server 2000 服务包

重新启动信息

您不必在应用此修补程序后重新启动计算机。

修补程序文件信息

此修补程序仅包含那些文件解决本文列出了该问题所必需的。此修补程序不能包含将产品完全更新到最新版本所必需的所有文件。
此修补程序的英文版具有的文件属性 (或更新的文件属性) 在下表中列出。日期和时间对这些文件列出在协调世界时 (UTC)。当您查看文件信息时,将转换为本地时间。若要 UTC 与本地时间之间的时差使用控制面板中的日期和时间工具中的 时区 选项卡。
      
   Date         Time   Version            Size    File name
   ------------------------------------------------------------------------
   23-Aug-2004  14:15  2000.80.972.0     664,128  Autoplt.dll      
   23-Aug-2004  14:15  2000.80.972.0      78,400  Console.exe      
   23-Aug-2004  14:15  2000.80.972.0     332,352  Ctasksui.dll     
   23-Aug-2004  14:15  2000.80.972.0     315,968  Custtask.dll     
   23-Aug-2004  14:15  2000.80.972.0      33,340  Dbmslpcn.dll     
   08-Apr-2004  09:12                    786,432  Distmdl.ldf
   08-Apr-2004  09:12                  2,359,296  Distmdl.mdf
   10-Oct-2003  06:18                        180  Drop_repl_hotfix.sql
   23-Aug-2004  14:15  2000.80.972.0   1,905,216  Dtspkg.dll       
   23-Aug-2004  14:15  2000.80.972.0     528,960  Dtspump.dll      
   23-Aug-2004  14:15  2000.80.972.0   1,557,052  Dtsui.dll        
   23-Aug-2004  14:15  2000.80.972.0     639,552  Dtswiz.dll       
   10-Oct-2003  06:18                    747,927  Instdist.sql
   10-Oct-2003  06:18                      1,581  Inst_repl_hotfix.sql
   23-Aug-2004  14:15  2000.80.972.0     352,828  Isqlw.exe        
   23-Aug-2004  14:15  2000.80.972.0      82,492  Itwiz.exe        
   23-Aug-2004  14:15  2000.80.972.0      90,692  Msgprox.dll      
   19-May-2004  11:13  8.11.40209.0      209,408  Mssdi98.dll      
   23-Aug-2004  14:15  2000.80.972.0      62,024  Odsole70.dll     
   23-Aug-2004  14:16  2000.80.972.0      25,144  Opends60.dll     
   23-Aug-2004  14:15  2000.80.972.0      57,904  Osql.exe         
   23-Aug-2004  14:15  2000.80.972.0     279,104  Pfutil80.dll     
   10-Oct-2003  06:07                    550,780  Procsyst.sql
   08-Apr-2004  09:12                     12,305  Qfe469315.sql
   08-Apr-2004  09:12                     19,195  Qfe469571.sql
   17-Aug-2004  11:57                      5,155  Qfe472197.sql
   23-Aug-2004  14:15  2000.80.972.0     143,940  Qrdrsvc.exe      
   23-Aug-2004  14:43                  1,105,167  Replmerg.sql
   23-Aug-2004  14:15  2000.80.972.0     221,768  Replprov.dll     
   23-Aug-2004  14:15  2000.80.972.0     307,784  Replrec.dll      
   23-Aug-2004  13:05  2000.80.972.0     159,813  Replres.rll
   17-Aug-2004  11:57                  1,086,925  Replsys.sql
   10-Oct-2003  06:18                    986,603  Repltran.sql
   23-Aug-2004  14:15  2000.80.972.0     287,304  Rinitcom.dll     
   23-Aug-2004  14:15  2000.80.972.0      78,416  Sdiclnt.dll      
   23-Aug-2004  14:15  2000.80.972.0      66,112  Semmap.dll       
   23-Aug-2004  14:15  2000.80.972.0      57,916  Semnt.dll        
   23-Aug-2004  14:15  2000.80.972.0     492,096  Semobj.dll       
   23-Aug-2004  13:41  2000.80.972.0     172,032  Semobj.rll
   23-Aug-2004  14:15  2000.80.972.0      53,832  Snapshot.exe     
   13-Jul-2004  08:29                    117,834  Sp3_serv_uni.sql
   23-Aug-2004  14:14  2000.80.972.0      28,672  Sqlagent.dll     
   23-Aug-2004  14:15  2000.80.972.0     311,872  Sqlagent.exe     
   23-Aug-2004  14:14  2000.80.972.0     168,001  Sqlakw32.dll     
   23-Aug-2004  14:15  2000.80.972.0      33,344  Sqlctr80.dll     
   23-Aug-2004  14:15  2000.80.972.0   4,215,360  Sqldmo.dll       
   23-Aug-2004  14:15                     25,172  Sqldumper.exe    
   23-Aug-2004  12:51  2000.80.972.0      28,672  Sqlevn70.rll
   23-Aug-2004  14:15  2000.80.972.0     156,224  Sqlmaint.exe     
   23-Aug-2004  14:15  2000.80.972.0     180,792  Sqlmap70.dll     
   23-Aug-2004  14:15  2000.80.972.0     188,992  Sqlmmc.dll       
   23-Aug-2004  13:47  2000.80.972.0     479,232  Sqlmmc.rll
   23-Aug-2004  14:16  2000.80.972.0     401,984  Sqlqry.dll       
   23-Aug-2004  14:16  2000.80.972.0      57,920  Sqlrepss.dll     
   23-Aug-2004  14:16  2000.80.972.0   7,581,777  Sqlservr.exe     
   23-Aug-2004  14:16  2000.80.972.0     590,396  Sqlsort.dll      
   23-Aug-2004  14:16  2000.80.972.0      45,644  Sqlvdi.dll       
   23-Aug-2004  14:16  2000.80.972.0     106,588  Sqsrvres.dll     
   23-Aug-2004  14:16  2000.80.972.0      33,340  Ssmslpcn.dll     
   23-Aug-2004  14:16  2000.80.972.0      82,492  Ssnetlib.dll     
   23-Aug-2004  14:16  2000.80.972.0      25,148  Ssnmpn70.dll     
   23-Aug-2004  14:16  2000.80.972.0     123,456  Stardds.dll      
   23-Aug-2004  14:16  2000.80.972.0     158,240  Svrnetcn.dll     
   23-Aug-2004  14:15  2000.80.972.0      76,416  Svrnetcn.exe     
   23-Aug-2004  14:16  2000.80.972.0      49,228  Ums.dll          
   23-Aug-2004  14:16  2000.80.972.0      98,872  Xpweb70.dll      


注意由于存在文件依赖性包含这些文件的最新修补程序还可能包含其他文件。




替代方法

要变通解决此问题,请删除唯一的非聚集索引的表上设置的 IGNORE_DUP_KEY 选项。



状态

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



更多信息

有关命名 Microsoft SQL Server 更新架构的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
822499Microsoft SQL Server 软件更新程序包的新命名架构
Microsoft 使用时释放该软件之后更正软件的术语有关的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
824684用于描述 Microsoft 软件更新的标准术语的说明

堆栈信息

SQL Server 错误日志中记录与以下内容类似的堆栈转储文件:

Short Stack Dump
00866627 Module(sqlservr+00466627) (CStackDump::GetContextAndDump+0000002E)
0086804E Module(sqlservr+0046804E) (stackTrace+0000021D)
0091D108 Module(sqlservr+0051D108) (utassert_fail+000002E3)
007FA5B3 Module(sqlservr+003FA5B3) (rowinsert+000001E5)
0041B2AB Module(sqlservr+0001B2AB) (insert+00000013)
0041D1B1 Module(sqlservr+0001D1B1) (RowsetSS::InsertRow+000001F4)
0041A9BE Module(sqlservr+0001A9BE) (CValRow::SetDataX+00000026)
00419E0E Module(sqlservr+00019E0E) (SetMultData+0000001C)
0041ADB9 Module(sqlservr+0001ADB9) (CEs::GeneralEval+000000DC)
006EA774 Module(sqlservr+002EA774) (CQScanUpdate::GetRow+000001DA)
004197AA Module(sqlservr+000197AA) (CQueryScan::GetRow+00000014)
00418CD7 Module(sqlservr+00018CD7) (CStmtQuery::ErsqExecuteQuery+0000035A)
0041A522 Module(sqlservr+0001A522) (CStmtDML::XretExecuteNormal+000002BD)
0041A346 Module(sqlservr+0001A346) (CStmtDML::XretExecute+0000001C)
00413CEE Module(sqlservr+00013CEE) (CMsqlExecContext::ExecuteStmts+000002D2)
004133E9 Module(sqlservr+000133E9) (CMsqlExecContext::Execute+000001B6)
00412918 Module(sqlservr+00012918) (CSQLSource::Execute+00000331)
004E737F Module(sqlservr+000E737F) (CStmtExec::XretLocalExec+0000014D)
004E721B Module(sqlservr+000E721B) (CStmtExec::XretExecute+0000031A)
00413CEE Module(sqlservr+00013CEE) (CMsqlExecContext::ExecuteStmts+000002D2)
004133E9 Module(sqlservr+000133E9) (CMsqlExecContext::Execute+000001B6)
00412918 Module(sqlservr+00012918) (CSQLSource::Execute+00000331)
00448916 Module(sqlservr+00048916) (language_exec+000003E1)
00411D4C Module(sqlservr+00011D4C) (process_commands+000000E0)
41073379 Module(UMS+00003379) (ProcessWorkRequests+0000024A)
41073071 Module(UMS+00003071) (ThreadStartRoutine+000000BD)
7800BEE4 Module(MSVCRT+0000BEE4) (beginthread+000000CE)
77F04EE8 Module(KERNEL32+00004EE8) (lstrcmpiW+000000BE)
-------------------------------------------------------------------------------
2001-06-18 21:33:32.87 spid55 SQL Server Assertion: File: <insert.c>, 
line=571
Failed Assertion = 'sdesP->m_pIndex->indindid == CLUSTIND'.
2001-06-18 21:33:32.90 spid55 Error: 3624, Severity: 20, State: 1.
2001-06-18 21:33:32.90 spid57 Using 'dbghelp.dll' version '4.0.5'
Dump thread - spid = 57, PSS = 0x4907d690, EC = 0x4907d9a0
Stack Dump being sent to d:\devices\MSSQL\log\SQL00012.dmp


属性

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