FIX: SQL Server 肯定:"nret = = FALSE"出现时插入或更新 SQL Server 2000 中的表数据

文章翻译 文章翻译
文章编号: 814665 - 查看本文应用于的产品
本文已归档。它按“原样”提供,并且不再更新。
错误 #: 356641 (SHILOH_BUGS)
展开全部 | 关闭全部

本文内容

症状

当您插入或更新 SQL Server 数据库表中的行,则可能会出现一个 SQL Server 断言错误。将出现此错误时终止当前连接,和 SQL Server 错误日志文件包含以下断言错误消息:

SQL Server 肯定: 文件: <dataspli.c>,行 = 1159年
无法肯定 = nret = = FALSE。
错误: 3624 严重性: 20,状态: 1

解决方案

服务包信息

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

修补程序信息

此修复程序的英文版具有文件属性 (或更高版本) 下表中列出。其格式为协调通用时间 (UTC) 列出日期和时间对这些文件。当您查看文件信息时,将转换为本地时间。若要 UTC 与本地时间之间的时差使用控制面板中的日期和时间工具中的 时区 选项卡。
   Date         Time   Version         Size             File name
   --------------------------------------------------------------------------

   07-Feb-2003  16:14                    786,432 bytes  Distmdl.ldf
   07-Feb-2003  16:14                  2,359,296 bytes  Distmdl.mdf
   29-Jan-2003  12:25                        180 bytes  Drop_repl_hotfix.sql
   31-Jan-2003  11:02  2000.80.763.0   1,557,052 bytes  Dtsui.dll        
   29-Jan-2003  12:25                      1,402 bytes  Inst_repl_hotfix.sql
   07-Feb-2003  17:10  2000.80.765.0      90,692 bytes  Msgprox.dll  
   29-Jan-2003  11:48  7.0.9466.0        344,064 bytes  Msvcr70.dll    
   29-Jan-2003  11:48  2000.80.722.0      57,904 bytes  Osql.exe         
   29-Jan-2003  15:48                    746,470 bytes  Instdist.sql
   07-Feb-2003  14:23                  1,065,895 bytes  Replmerg.sql
   07-Feb-2003  17:10  2000.80.765.0     221,768 bytes  Replprov.dll     
   07-Feb-2003  17:10  2000.80.765.0     307,784 bytes  Replrec.dll      
   29-Jan-2003  15:48                  1,084,318 bytes  Replsys.sql
   29-Jan-2003  11:48  2000.80.534.0     127,548 bytes  Sqdedev.dll      
   29-Jan-2003  11:48  2000.80.194.0     180,290 bytes  Sqlunirl.dll     
   07-Feb-2003  17:10  2000.80.765.0     176,696 bytes  Sqlmap70.dll     
   07-Feb-2003  17:10  2000.80.765.0      57,920 bytes  Sqlrepss.dll     
   07-Feb-2003  17:11  2000.80.765.0   7,528,529 bytes  Sqlservr.exe     
   07-Feb-2003  17:10  2000.80.765.0      45,644 bytes  Sqlvdi.dll       
   07-Feb-2003  17:10  2000.80.765.0      82,492 bytes  Ssnetlib.dll     

				
: 由于文件相关性的最新的修补程序或功能,它包含该文件可能还包含其他文件。


替代方法

若要变通解决此问题,请使用适用于您的具体情况的方法:

  • 如果用 ALTER VIEW 或 ALTER 程序 TRANSACT-SQL 命令出现的问题,删除视图或过程,然后重新创建它用 CREATE VIEW 或在 CREATE 程序 TRANSACT-SQL 命令。
  • 如果出现问题 (如更新或 INSERT 命令) 的另一个 TRANSACT-SQL 命令重组拆分,以避免页面的较小 填充因子 的表上聚集的索引。

状态

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

更多信息

与任何 TRANSACT-SQL 命令可插入或更新,从而导致页拆分表中的行可能会发生此问题。使用 ALTER VIEW 或 ALTER 程序 TRANSACT-SQL 命令时曾最常出现此问题。当您在遇到使用 ALTER VIEW 或 ALTER 程序命令问题较短的堆栈转储 SQL Server 错误日志文件中将显示以下内容:

Module(sqlservr+0046CD4C) (CStackDump::GetContextAndDump+0000002E)
Module(sqlservr+0046E778) (stackTrace+0000021D) 
Module(sqlservr+00523F7F) (utassert_fail+000002E3)
Module(sqlservr+003FA077) (DataSplitMgr::InsertDataRow+00000060)
Module(sqlservr+0002630F) (datasplit+000000C5) 
Module(sqlservr+000272AA) (cinsert+00000165)
Module(sqlservr+000175DC) (rowinsert+00000101)
Module(sqlservr+0001B77F) (insert+00000013)
Module(sqlservr+0012BAC0) (CSysScan::FInsertRow+0000009A)
Module(sqlservr+001A9E3B) (CCommentScan::FInsertRow+00000160)
Module(sqlservr+001A0B81) (FFillSQL+000001EB)
Module(sqlservr+0019FD83) (CProchdr::CreateProc+0000177D)
Module(sqlservr+001E6C0A) (CSQLSource::Execute+000003C0)
Module(sqlservr+0013C498) (language_exec+000003E1)
Module(sqlservr+00011099) (process_commands+000000EC) 
Module(UMS+00003379) (ProcessWorkRequests+0000024A) 
Module(UMS+00003071) (ThreadStartRoutine+000000BD) 
Module(MSVCRT+0000C9EB) (beginthread+000000CE) 

参考

拆分的有关某一页的详细信息,请访问下面的 Microsoft 网站:
http://msdn2.microsoft.com/en-us/library/aa933139(SQL.80).aspx

属性

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