修复: 您可能会收到错误 1203 当 INSERT 语句运行 SQL Server 2005 中具有标识列的表

Extended support for SQL Server 2005 ended on April 12, 2016

If you are still running SQL Server 2005, you will no longer receive security updates and technical support. We recommend upgrading to SQL Server 2014 and Azure SQL Database to achieve breakthrough performance, maintain security and compliance, and optimize your data platform infrastructure. Learn more about the options for upgrading from SQL Server 2005 to a supported version here.

重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。

点击这里察看该文章的英文版: 933265
本文已归档。它按“原样”提供,并且不再更新。
本文已归档。它按“原样”提供,并且不再更新。
Bug: # 50000793 (SQL 修补程序)
Microsoft 将 Microsoft SQL Server 2005 修补程序作为一个可下载文件进行分发。修补程序是累积性的因为每个新版本包含的所有修补程序,并附带上一个 SQL Server 2005 的所有安全修补程序的修补都程序版本。
概要
本文介绍有关此修补程序发布的以下:
  • 通过此修补程序包修复的问题
  • 安装此修复程序包的先决条件
  • 安装此修补程序包后是否必须重新启动计算机
  • 是否将此修补程序包替代任何其他修复程序包
  • 是否必须更改注册表
  • 此修复程序包中包含的文件
症状
产生错误的场景如下:您必须具有多个微处理器的计算机。您对具有标识列的表执行 INSERT 语句。并行运行的 INSERT 语句。在这种情况下,您可能会收到下面的错误消息:
1203 错误
进程 ID %1 试图解除它不拥有的资源: %。 * ls。请重试该事务,因为此错误可能由定时条件。如果问题仍然存在,请与数据库管理员联系。
解决方案

累积更新信息

若要解决此问题,请将累积更新包 2 获得 SQL 2005 Service Pack 2 (build 3175)。 有关如何获取累积更新的详细信息包的 2 (build 3175),请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
936305 为 SQL 服务器 2005 Service Pack 2 的累积更新包 2

热修复补丁程序信息

可以从 Microsoft 获得支持的热修复补丁程序。但是,此修补程序仅能用于解决本文中描述的问题。此热修复补丁程序仅适用于正出现此特定问题的系统。此修补程序可能会接受进一步的测试。因此,如果这个问题没有对您造成严重的影响,我们建议您等待包含此修复程序的下一个软件更新。

如果此修补程序可以下载,则此知识库文章顶部会出现"提供修补程序下载"部分。如果未显示此节,请与 Microsoft 客户服务和支持,以获取此修复程序。

注意 如果出现其他问题或需要任何故障诊断,您可能需要创建单独的服务请求。到其他支持问题和事项,对于此特定的修补程序不需要将照常收取支持费用。Microsoft 客户服务和支持电话号码,或创建单独的服务请求的完整列表,请访问下面的 Microsoft 网站: 注意 "可用的热修补程序下载"表格显示此热修复补丁程序适用的语言。如果您看不到您的语言,这是因为热修复补丁程序不适用于该语言。

先决条件

若要应用此修补程序,您必须安装在计算机上的 SQL 服务器 2005 Service Pack 1 (SP1)。 有关如何获取 SQL 服务器 2005 Service Pack 1 的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
913089 如何获取适用于 SQL Server 2005 的最新 Servece Pack

重新启动信息

应用此修补程序后,不需要重新启动计算机。

注册表信息

您不需要更改注册表。

修补程序文件信息

此修补程序包含解决本文列出的问题所需的那些文件。此修复程序可能不包含您必须要将产品完全更新到最新版本的所有文件。此修补程序的英文版具有的文件属性 (或更新的文件属性) 下表中列出。这些文件的日期和时间以协调世界时 (UTC) 显示。当您查看文件信息时,它已转换为本地时间。要了解 UTC 与本地时间之间的时差,请在控制面板中的日期和时间项中使用时区选项卡。
SQL Server 2005 中,基于 x86 版本
文件名称文件版本文件大小日期时间平台
Bcp.exe2005.90.2227.069,4883 月 30 日20:44x86
Databasemailengine.dll9.0.2227.075,1203 月 30 日20:44x86
Logread.exe2005.90.2227.0400,7523 月 30 日20:45x86
Microsoft.analysisservices.adomdclient.dll9.0.2227.0546,1603 月 30 日20:45x86
Microsoft.analysisservices.deploymentengine.dll9.0.2227.0140,6563 月 30 日20:45x86
Microsoft.analysisservices.dll9.0.2227.01,217,9043 月 30 日20:45x86
Microsoft.sqlserver.mgdsqldumper.dll2005.90.2227.078,1923 月 30 日20:45x86
Microsoft.sqlserver.sqlenum.dll9.0.2227.0910,7043 月 30 日20:45x86
Msasxpress.dll9.0.2227.024,9443 月 30 日20:45x86
Msgprox.dll2005.90.2227.0200,5603 月 30 日20:45x86
Msmdlocal.dll9.0.2227.015,646,0643 月 30 日20:45x86
Msmdredir.dll9.0.2227.03,993,9683 月 30 日20:45x86
Mssqlsystemresource.ldf不适用5242883 月 30 日14:30不适用
Mssqlsystemresource.mdf不适用40,108,0323 月 30 日14:30不适用
Qrdrsvc.exe2005.90.2227.0369,5203 月 30 日20:45x86
Rdistcom.dll2005.90.2227.0643,4403 月 30 日20:45x86
Repldp.dll2005.90.2227.0187,2483 月 30 日20:45x86
Replmerg.exe2005.90.2227.0320,8803 月 30 日20:45x86
Replprov.dll2005.90.2227.0550,2563 月 30 日20:45x86
Replrec.dll2005.90.2227.0784,7523 月 30 日20:45x86
Replsub.dll2005.90.2227.0407,4083 月 30 日20:45x86
Spresolv.dll2005.90.2227.0177,0083 月 30 日20:45x86
Sqlaccess.dll2005.90.2227.0350,5763 月 30 日20:45x86
Sqlagent90.exe2005.90.2227.0321,3923 月 30 日20:45x86
Sqlservr.exe2005.90.2227.028,979,1123 月 30 日20:45x86
Sysdbupg.sql不适用218,4862006 年 12 月 29 日13:53不适用
Xmlsub.dll2005.90.2227.0195,4403 月 30 日20:45x86
Xpstar90.dll2005.90.2227.0295,2803 月 30 日20:45x86
Xpstar90.rll2005.90.2227.0155,5043 月 30 日20:45x86
SQL Server 2005 中,基于 x64 版本
文件名称文件版本文件大小日期时间平台
Bcp.exe2005.90.2227.088,9443 月 30 日19:34x64
Databasemailengine.dll9.0.2227.075,1203 月 30 日19:34x86
Logread.exe2005.90.2227.0525,1683 月 30 日19:34x64
Microsoft.analysisservices.adomdclient.dll9.0.2227.0546,1603 月 30 日19:34x86
Microsoft.analysisservices.adomdclient.dll9.0.2227.0546,1603 月 30 日20:45x86
Microsoft.analysisservices.deploymentengine.dll9.0.2227.0140,6563 月 30 日20:45x86
Microsoft.analysisservices.dll9.0.2227.01,217,9043 月 30 日20:45x86
Microsoft.sqlserver.mgdsqldumper.dll2005.90.2227.094,0643 月 30 日19:34x64
Microsoft.sqlserver.mgdsqldumper.dll2005.90.2227.078,1923 月 30 日20:45x86
Microsoft.sqlserver.sqlenum.dll9.0.2227.0877,9363 月 30 日19:34x86
Msasxpress.dll9.0.2227.030,0643 月 30 日19:34x64
Msasxpress.dll9.0.2227.024,9443 月 30 日20:45x86
Msgprox.dll2005.90.2227.0262,0003 月 30 日19:34x64
Msmdlocal.dll9.0.2227.015,646,0643 月 30 日20:45x86
Msmdredir.dll9.0.2227.03,993,9683 月 30 日20:45x86
Mssqlsystemresource.ldf不适用5242883 月 30 日14:30不适用
Mssqlsystemresource.mdf不适用40,108,0323 月 30 日14:30不适用
Qrdrsvc.exe2005.90.2227.0434,0323 月 30 日19:34x64
Rdistcom.dll2005.90.2227.0836,4643 月 30 日19:34x64
Repldp.dll2005.90.2227.0237,9363 月 30 日19:34x64
Repldp.dll2005.90.2227.0187,2483 月 30 日20:45x86
Replmerg.exe2005.90.2227.0417,6483 月 30 日19:34x64
Replprov.dll2005.90.2227.0747,8883 月 30 日19:34x64
Replrec.dll2005.90.2227.01,010,5443 月 30 日19:34x64
Replsub.dll2005.90.2227.0528,2403 月 30 日19:34x64
Spresolv.dll2005.90.2227.0225,6483 月 30 日19:34x64
Sqlaccess.dll2005.90.2227.0357,7443 月 30 日19:34x86
Sqlagent90.exe2005.90.2227.0392,5603 月 30 日19:34x64
Sqlservr.exe2005.90.2227.039,359,8563 月 30 日19:34x64
Sysdbupg.sql不适用218,4862006 年 12 月 29 日13:53不适用
Xmlsub.dll2005.90.2227.0319,8563 月 30 日19:34x64
Xpstar90.dll2005.90.2227.0543,6003 月 30 日19:34x64
Xpstar90.rll2005.90.2227.0156,0163 月 30 日19:34x64
SQL Server 2005 中,安腾体系结构版本中
文件名称文件版本文件大小日期时间平台
Bcp.exe2005.90.2227.0157,5523 月 30 日22:02IA-64
Databasemailengine.dll9.0.2227.075,1203 月 30 日22:02x86
Logread.exe2005.90.2227.01,098,0963 月 30 日22:02IA-64
Microsoft.analysisservices.adomdclient.dll9.0.2227.0546,1603 月 30 日20:45x86
Microsoft.analysisservices.adomdclient.dll9.0.2227.0546,1603 月 30 日22:02x86
Microsoft.analysisservices.deploymentengine.dll9.0.2227.0140,6563 月 30 日20:45x86
Microsoft.analysisservices.dll9.0.2227.01,217,9043 月 30 日20:45x86
Microsoft.sqlserver.mgdsqldumper.dll2005.90.2227.078,1923 月 30 日20:45x86
Microsoft.sqlserver.mgdsqldumper.dll2005.90.2227.0165,7443 月 30 日22:02IA-64
Microsoft.sqlserver.sqlenum.dll9.0.2227.0877,9363 月 30 日22:02x86
Msasxpress.dll9.0.2227.024,9443 月 30 日20:45x86
Msasxpress.dll9.0.2227.057,7123 月 30 日22:02IA-64
Msgprox.dll2005.90.2227.0545,1363 月 30 日22:02IA-64
Msmdlocal.dll9.0.2227.048,718,7043 月 30 日22:02IA-64
Msmdredir.dll9.0.2227.06,249,3283 月 30 日22:02IA-64
Mssqlsystemresource.ldf不适用5242883 月 30 日14:30不适用
Mssqlsystemresource.mdf不适用40,108,0323 月 30 日14:30不适用
Qrdrsvc.exe2005.90.2227.0943,9843 月 30 日22:02IA-64
Rdistcom.dll2005.90.2227.01,884,0163 月 30 日22:02IA-64
Repldp.dll2005.90.2227.0187,2483 月 30 日20:45x86
Repldp.dll2005.90.2227.0511,3443 月 30 日22:03IA-64
Replmerg.exe2005.90.2227.0957,2963 月 30 日22:03IA-64
Replprov.dll2005.90.2227.01,619,8243 月 30 日22:03IA-64
Replrec.dll2005.90.2227.02,143,6003 月 30 日22:03IA-64
Replsub.dll2005.90.2227.01,159,5363 月 30 日22:03IA-64
Spresolv.dll2005.90.2227.0498,0323 月 30 日22:03IA-64
Sqlaccess.dll2005.90.2227.0352,1123 月 30 日22:03x86
Sqlagent90.exe2005.90.2227.01,143,6643 月 30 日22:03IA-64
Sqlservr.exe2005.90.2227.072,220,5283 月 30 日22:03IA-64
Sysdbupg.sql不适用218,4862006 年 12 月 29 日13:53不适用
Xmlsub.dll2005.90.2227.0593,2643 月 30 日22:03IA-64
Xpstar90.dll2005.90.2227.0953,7123 月 30 日22:03IA-64
Xpstar90.rll2005.90.2227.0154,9923 月 30 日22:03IA-64
状态
Microsoft 已经确认这是在"适用于"一节中列出的 Microsoft 产品中的问题。
更多信息

重现问题的步骤

  1. 开始 SQL Server 管理 Studio,,然后创建一个新查询。
  2. 运行下面的语句创建测试表。
    CREATE TABLE dbo.User_Cost3	(	Id int NOT NULL IDENTITY (1, 1),	Cost float(53) NOT NULL,	Started_Date datetime NULL,	Ended_Date datetime NULL,	User_Id int NOT NULL	)  ON [PRIMARY]goBEGIN TRANSACTION tran2declare @i int;set @i = 0;while(@i < 100000)begin	insert into dbo.User_Cost3 values(@i, GETDATE(), GETDATE(), @i)	set @i = @i + 1;endCOMMIT TRANSACTIONgo
  3. 运行下面的语句。
    declare @i intset @i = 1while(@i > 0)beginBEGIN TRANSACTION tran1CREATE TABLE dbo.#Tmp_User_Cost2	(	Id int NOT NULL IDENTITY (1, 1),	Cost float(53) NOT NULL,	Started_Date datetime NULL,	Ended_Date datetime NULL,	User_Id int NOT NULL	)  ON [PRIMARY]ALTER TABLE [dbo].[#Tmp_User_Cost2] ADD CONSTRAINT [Tmp_IXPKCU_User_Cost2__Id] PRIMARY KEY CLUSTERED ([Id]) ON [PRIMARY]SET IDENTITY_INSERT dbo.#Tmp_User_Cost2 ONIF EXISTS(SELECT * FROM dbo.User_Cost3)	 EXEC('INSERT INTO dbo.#Tmp_User_Cost2 (Id, Cost, Started_Date, Ended_Date, User_Id)		SELECT CONVERT(int, Id), Cost, Started_Date, Ended_Date, CONVERT(int, User_Id) FROM dbo.User_Cost3 WITH (HOLDLOCK TABLOCKX);')drop table dbo.#Tmp_User_Cost2COMMIT TRANSACTIONprint 'ok'endgo
有关命名 SQL Server 更新架构的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
822499 对于 Microsoft SQL Server 软件更新程序包的新命名方案
有关软件更新术语的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
824684 用于描述 Microsoft 软件更新的标准术语的说明

属性

文章 ID:933265 - 上次审阅时间:12/09/2015 09:59:20 - 修订版本: 3.0

Microsoft SQL Server 2005 Developer Edition, Microsoft SQL 2005 Server Enterprise, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Standard X64 Edition, Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems, Microsoft SQL Server 2005 Enterprise X64 Edition, Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems

  • kbnosurvey kbarchive kbautohotfix kbsql2005engine kbexpertiseadvanced kbfix kbqfe kbHotfixServer kbmt KB933265 KbMtzh
反馈