FIX: 一个访问冲突异常时,可能会发生多个用户试图执行数据修改操作,同时为触发引用一个已删除或插入的表 SQL Server 2000 中的正在运行 SMP 计算机上的触发器

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


展开全部 | 关闭全部

本文内容

文章内容

概要

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

症状

当在多用户环境中您正在连接到 Microsoft SQL Server 2000 对称多处理器 (SMP) 计算机上运行的实例时您尝试修改 SQL Server 表中的数据时,可能会发生访问冲突异常。

当满足下列所有条件都都为真时,可能会发生此现象:
  • 多个用户试图执行数据修改操作,如在同一个 SQL Server 表一个 UPDATE 操作,一次。
  • 一个或多个触发器都对应于数据修改操作 SQL Server 表上定义。
  • 一个或多个触发器访问插入表和 / 或已删除的表。
在出现此行为取决于数据修改操作和 $ 日志扫描操作之间的时间差别。小时间差别。因此,此行为将不会频繁。

以前的修复程序是多请参阅下列 Microsoft 知识库文章中的修复"Microsoft SQL Server 2000 post-Service 包 3 或 Microsoft SQL Server 2000 post-Service 包 3a 程序"部分:
290211如何获取最新的 SQL Server 2000 服务包

解决方案

服务包信息

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

修补程序信息

系统必备组件

此修补程序需要 Microsoft SQL Server 2000 Service Pack 3 (SP3) 或 Microsoft SQL Server 2000 Service Pack 3a (SP3a)。 有关如何获取 SQL Server 2000 SP3 或 SQL Server 2000 SP3a 的信息,请参阅下面 Microsoft 知识库中相应的文章:

290211如何获取最新的 SQL Server 2000 Service Pack


重新启动信息

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



修补程序文件信息

此修补程序仅包含那些文件解决本文列出了该问题所必需的。此修补程序不能包含将产品完全更新到最新版本所必需的所有文件。

此修补程序的英文版具有文件属性 (或更高版本) 下表中列出。其格式为协调通用时间 (UTC) 列出日期和时间对这些文件。当您查看文件信息时,将转换为本地时间。若要 UTC 与本地时间之间的时差使用控制面板中的日期和时间工具中的 时区 选项卡。
   Date         Time   Version            Size    File name
   -------------------------------------------------------------------------
   15-Jul-2004  16:12  2000.80.961.0     664,128  Autoplt.dll
   15-Jul-2004  16:27  2000.80.961.0      78,400  Console.exe
   15-Jul-2004  16:44  2000.80.961.0     315,968  Custtask.dll
   15-Jul-2004  16:12  2000.80.961.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
   15-Jul-2004  16:40  2000.80.961.0   1,905,216  Dtspkg.dll
   15-Jul-2004  16:37  2000.80.961.0     528,960  Dtspump.dll
   15-Jul-2004  16:53  2000.80.961.0   1,557,052  Dtsui.dll
   15-Jul-2004  16:52  2000.80.961.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
   15-Jul-2004  16:59  2000.80.961.0     352,828  Isqlw.exe
   15-Jul-2004  16:53  2000.80.961.0      82,492  Itwiz.exe
   15-Jul-2004  16:11  2000.80.961.0      90,692  Msgprox.dll
   19-May-2004  11:13  8.11.40209.0      209,408  Mssdi98.dll
   15-Jul-2004  16:14  2000.80.961.0      62,024  Odsole70.dll
   15-Jul-2004  16:32  2000.80.961.0      25,144  Opends60.dll
   15-Jul-2004  16:13  2000.80.961.0      57,904  Osql.exe
   15-Jul-2004  16:41  2000.80.961.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
   15-Jul-2004  17:43                  1,105,167  Replmerg.sql
   15-Jul-2004  16:21  2000.80.961.0     221,768  Replprov.dll
   15-Jul-2004  16:23  2000.80.961.0     307,784  Replrec.dll
   15-Jul-2004  16:14  2000.80.961.0     159,813  Replres.rll
   10-Oct-2003  06:18                  1,087,150  Replsys.sql
   10-Oct-2003  06:18                    986,603  Repltran.sql
   15-Jul-2004  16:27  2000.80.961.0     287,304  Rinitcom.dll
   15-Jul-2004  16:12  2000.80.961.0      78,416  Sdiclnt.dll
   15-Jul-2004  16:01  2000.80.961.0      66,112  Semmap.dll
   15-Jul-2004  16:06  2000.80.961.0      57,916  Semnt.dll
   15-Jul-2004  16:50  2000.80.961.0     492,096  Semobj.dll
   15-Jul-2004  16:45  2000.80.961.0     172,032  Semobj.rll
   15-Jul-2004  16:20  2000.80.961.0      53,832  Snapshot.exe
   13-Jul-2004  08:29                    117,834  Sp3_serv_uni.sql
   15-Jul-2004  16:06  2000.80.961.0      28,672  Sqlagent.dll
   15-Jul-2004  16:10  2000.80.961.0     311,872  Sqlagent.exe
   15-Jul-2004  16:16  2000.80.961.0     168,001  Sqlakw32.dll
   15-Jul-2004  16:16  2000.80.961.0      33,344  Sqlctr80.dll
   15-Jul-2004  16:52  2000.80.961.0   4,215,360  Sqldmo.dll
   15-Jul-2004  16:19                     25,172  Sqldumper.exe
   15-Jul-2004  16:02  2000.80.961.0      28,672  Sqlevn70.rll
   15-Jul-2004  16:22  2000.80.961.0     156,224  Sqlmaint.exe
   15-Jul-2004  16:25  2000.80.961.0     180,792  Sqlmap70.dll
   15-Jul-2004  16:50  2000.80.961.0     188,992  Sqlmmc.dll
   15-Jul-2004  16:46  2000.80.961.0     479,232  Sqlmmc.rll
   15-Jul-2004  16:44  2000.80.961.0     401,984  Sqlqry.dll
   15-Jul-2004  16:23  2000.80.961.0      57,920  Sqlrepss.dll
   15-Jul-2004  16:16  2000.80.961.0   7,512,640  Sqlservr.exe     
   15-Jul-2004  16:04  2000.80.961.0     590,396  Sqlsort.dll      
   15-Jul-2004  16:24  2000.80.961.0      45,644  Sqlvdi.dll
   15-Jul-2004  16:23  2000.80.961.0     106,588  Sqsrvres.dll
   15-Jul-2004  16:12  2000.80.961.0      33,340  Ssmslpcn.dll
   15-Jul-2004  16:13  2000.80.961.0      82,492  Ssnetlib.dll
   15-Jul-2004  16:30  2000.80.961.0      25,148  Ssnmpn70.dll
   15-Jul-2004  16:25  2000.80.961.0     123,456  Stardds.dll
   15-Jul-2004  16:26  2000.80.961.0     158,240  Svrnetcn.dll
   15-Jul-2004  16:26  2000.80.961.0      76,416  Svrnetcn.exe
   15-Jul-2004  16:30  2000.80.961.0      53,808  Ums.dll
   15-Jul-2004  16:27  2000.80.961.0      98,872  Xpweb70.dll


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

状态

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
* 00000000004ACA40 Module(sqlservr+00000000000ACA40) (LC::Copy+00000000000000B0)
* 00000000004ABDC0 Module(sqlservr+00000000000ABDC0) (LogMgr::LogBlockReadAheadAsync+0000000000000160)
* 0000000000716D80 Module(sqlservr+0000000000316D80) (LogIterForward::ReadLog+0000000000000180)
* 00000000007185D0 Module(sqlservr+00000000003185D0) (LogIterForward::TryLogReadAhead+0000000000000260)
* 0000000000717170 Module(sqlservr+0000000000317170) (LogIterForward::GetNextBlock+0000000000000190)
* 0000000000717C70 Module(sqlservr+0000000000317C70) (LogIterForward::GetNext+00000000000001C0)
* 000000000105D110 Module(sqlservr+0000000000C5D110) (RowsetLogScan::GetNextRows+0000000000000250)
* 00000000004F1E70 Module(sqlservr+00000000000F1E70) (CQScanRowset::GetRowWithPrefetch+0000000000000330)
* 00000000004F2010 Module(sqlservr+00000000000F2010) (CQScanRowset::GetRow+00000000000000E0)
* 0000000000458C50 Module(sqlservr+0000000000058C50) (CQueryScan::GetRow+00000000000002F0)
* 00000000004545C0 Module(sqlservr+00000000000545C0) (CStmtQuery::ErsqExecuteQuery+00000000000006F0)
* 0000000000472550 Module(sqlservr+0000000000072550) (CStmtAssignWithQuery::XretExecute+0000000000000310)
* 0000000000472220 Module(sqlservr+0000000000072220) (CMsqlExecContext::ExecuteStmts+0000000000000CB0)
* 000000000044F480 Module(sqlservr+000000000004F480) (CMsqlExecContext::Execute+0000000000000810)
* 000000000044F280 Module(sqlservr+000000000004F280) (CSQLSource::Execute+00000000000003C0)
* 00000000014BA680 Module(sqlservr+00000000010BA680) (ExecTrigger+0000000000000210)
* 00000000014BDAF0 Module(sqlservr+00000000010BDAF0) (ExecAfterTrigs+0000000000000380)
* 00000000009EF910 Module(sqlservr+00000000005EF910) (CStmtDML::XretExecuteNormal+0000000000002150)
* 00000000004816A0 Module(sqlservr+00000000000816A0) (CMsqlExecContext::ExecuteStmts+0000000000000BB0)
* 000000000044F480 Module(sqlservr+000000000004F480) (CMsqlExecContext::Execute+0000000000000810)
* 000000000044F280 Module(sqlservr+000000000004F280) (CSQLSource::Execute+00000000000003C0)
* 00000000015734B0 Module(sqlservr+00000000011734B0) (ExecuteSql+00000000000004D0)
* 0000000001540C90 Module(sqlservr+0000000001140C90) (CSpecProc::ExecuteSpecial+0000000000000730)
* 0000000001541F50 Module(sqlservr+0000000001141F50) (CSpecProc::Execute+00000000000001F0)
* 00000000009DD390 Module(sqlservr+00000000005DD390) (execrpc+0000000000001250)
* 0000000000452A30 Module(sqlservr+0000000000052A30) (process_commands+0000000000000760)
* 0000000000404240 Module(sqlservr+0000000000004240) (ProcessWorkRequests+0000000000000A00)
* 0000000000726430 Module(sqlservr+0000000000326430) (ThreadStartRoutine+0000000000000150)
* 000006FB7FAFE230 Module(msvcrt+000000000005E230) (tanhf+0000000000054550)
* 0000000077D24400 Module(kernel32+0000000000094400) (GetDateFormatW+0000000000070070)


属性

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