FIX: 在 SQL Server 2005 中执行一个用户定义函数时出现错误信息:"无效的 length 参数传递到该 SUBSTRING 函数"或"A 传输级错误发生从服务器接收结果时"

文章翻译 文章翻译
文章编号: 924291 - 查看本文应用于的产品
bug #: 1209 (SQL hotfix)
bug #: 443526 (SQLBUDT)
注意
Microsoft 将作为一个可下载的文件来分发 Microsoft SQL Server 2005 修补程序。 因为该修补程序是累积性的因此每个新版本包含所有修复程序并都包含以前的 SQL Server 2005 所有安全修补程序都修复版本。
展开全部 | 关闭全部

本文内容

本文介绍以下有关此修复程序版本:
  • 此修复程序包修复的问题
  • for installing hotfix package prerequisites
  • 有关安装此修复程序包后是否必须重新启动计算机的信息
  • 有关是否修复程序包被任何其他修补程序程序包替代信息
  • 有关是否必须进行任何注册表更改的信息
  • 在修复程序包中包含文件

症状

当您在 SQL Server 2005 中执行一个用户定义函数时, 会出现错误消息。 如果您运行下面的语句执行用户定义函数之前,就会发生此问题:
SET FMTONLY ON
收到一个不同的错误信息,根据所安装的 SQL Server 2005 的版本。 如果您使用 SQL Server 2005 Service Pack 1 (SP 1),您也可能会遇到其他问题。

原始发行版本的 SQL Server 2005

当您执行用户定义函数原始版本的 SQL Server 2005 中时,您收到以下错误信息。
msg 536,级别 16,5,状态行 4
invalid length parameter passed to SUBSTRING function。

SQL Server 2005 SP 1

when in SQL Server 2005 SP1 execute defined user-function,experience following problems:
  • receive following error message:
    msg 109,20,级别状态 0,行 0
    从服务器接收结果时发生一个传输级错误。 (提供程序: 共享内存提供程序,错误: 0-的管道已被终止)
  • 该 SQL Server 服务停止。
  • 在 SQL Server Errorlog 文件中会记录以下访问冲突:
    SqlDumpExceptionHandler: 进程 53 生成致命的异常 c 0000005 EXCEPTION_ACCESS_VIOLATION。 SQL Server 正在终止此过程。

解决方案

Service Pack 信息

若要解决此问题,获取 SQL Server 2005 的最新的 Service Pack。 有关详细信息,单击下面的文章编号以查看 Microsoft 知识库中相应的文章:
913089 如何获取最新的 Service Pack 为 SQL Server 2005

修复程序信息

Microsoft 提供了一个受支持的修补程序。 但是,此修复程序旨在解决仅此文章中描述的问题。 仅为正在经历此特定问题的系统应用此修复程序。 此修复程序可能会接受进一步的测试。 因此,如果您不会受到严重影响此问题,我们建议您等待包含此修复程序的下一个软件更新。

如果此修复程序可供下载,有是在这篇知识库文章的顶部"修补程序下载可用"部分。 如果不显示此节,请与 Microsoft 客户服务和支持以获取此修复程序。

注意 if additional issues occur or if any troubleshooting is required,might have to create separate service request。 usual support costs will apply to additional support questions and issues that do not qualify for this specific hotfix。 for complete list of Microsoft Customer Service and Support telephone numbers or to create separate service request,visit following Microsoft Web site:
http://support.microsoft.com/contactus/?ws=support
注意 "修补程序下载可用"窗体显示为该语言。 如果看不到您的语言,则是因为一个修复程序不能用于该语言。

系统必备

您必须应用此修复程序安装 SQL Server 2005 Service Pack 1 (SP 1)。

有关如何获取 SQL Server 2005 Service Pack 1,单击下面的文章编号以查看 Microsoft 知识库中相应的文章:
913089 如何获取最新的 Service Pack 为 SQL Server 2005

重新启动信息

必须应用此修复程序后,重新启动 SQL Server 服务。

注册表信息

您不必更改注册表。

修复程序文件信息

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

文件属性 (或更高版本的文件属性) 此修复程序的英文版具有下表中列出。 日期和时间为这些文件被列出以协调通用时间 (UTC)。 when view file information,is converted to local time。 若要查找 UTC 与本地时间之间时差,在控制面板中日期和时间项目中使用 时区 选项卡。
收起该表格展开该表格
文件的名称文件版本文件大小日期时间平台
Hauresourcedb.ldf不适用524,28817-Aug-200610:39不适用
Hauresourcedb.mdf不适用39,911,42417-Aug-200610:39不适用
Logread.exe2005.90.2183.0398,11217-Aug-200614:13x 86
Microsoft.analysisservices.adomdclient.dll9.0.2183.0543,52017-Aug-200614:13x 86
Microsoft.analysisservices.deployengine.dll9.0.2183.0138,01617-Aug-200614:12x 86
Microsoft.analysisservices.dll9.0.2183.01,215,26417-Aug-200614:13x 86
Microsoft.sqlserver.mgdsqldumper.dll2005.90.2183.075,55217-Aug-200614:11x 86
Microsoft.sqlserver.sqlenum.dll9.0.2183.0908,06417-Aug-200614:13x 86
Msgprox.dll2005.90.2183.0197,92017-Aug-200614:11x 86
Msmdlocal.dll9.0.2183.015,703,84017-Aug-200614:13x 86
Msmdredir.dll9.0.2183.03,968,80017-Aug-200614:14x 86
Replprov.dll2005.90.2183.0547,61617-Aug-200614:13x 86
Replrec.dll2005.90.2183.0782,11217-Aug-200614:12x 86
Sqlaccess.dll2005.90.2183.0347,93617-Aug-200614:13x 86
Sqlagent90.exe2005.90.2183.0319,26417-Aug-200614:12x 86
Sqlservr.exe2005.90.2183.028,959,06417-Aug-200614:13x 86
Sysdbupg.sql不适用192,34619-Jul-200609:02不适用
Template_hauresourcedb.ldf不适用524,28817-Aug-200610:39不适用
Template_hauresourcedb.mdf不适用39,911,42417-Aug-200610:39不适用
Xpstar90.dll2005.90.2183.0292,64017-Aug-200614:16x 86
Xpstar90.rll2005.90.2183.0152,86417-Aug-200614:12不适用

替代方法

若要 to work around this problem,execute defined user-function before SET FMTONLY setting change to OFF。

状态

Microsoft 已确认这是"适用于"一节中列出的 Microsoft 产品中存在的问题。 此问题最早在 SQL Server 2005 Service Pack 2 中。

更多信息

有关命名架构以了解 Microsoft SQL Server 更新信息,单击下面的文章编号以查看 Microsoft 知识库中相应的文章:
822499 Microsoft SQL Server 软件更新程序包的新文件命名方案
有关软件更新术语,单击下面的文章编号以查看 Microsoft 知识库中相应的文章:
824684 description of that is used to describe Microsoft software updates standard terminology

堆栈转储信息

You receive the following stack dump information in SQL Server 2005 SP1:
2006-08-16 19:30:37.61 spid54      * Short Stack Dump
2006-08-16 19:30:37.62 spid54      014718DE Module(sqlservr+004718DE)
2006-08-16 19:30:37.62 spid54      0108B032 Module(sqlservr+0008B032)
2006-08-16 19:30:37.62 spid54      0108B066 Module(sqlservr+0008B066)
2006-08-16 19:30:37.62 spid54      014680F2 Module(sqlservr+004680F2)
2006-08-16 19:30:37.62 spid54      01BDF9D2 Module(sqlservr+00BDF9D2)
2006-08-16 19:30:37.62 spid54      014688D5 Module(sqlservr+004688D5)
2006-08-16 19:30:37.62 spid54      01023E34 Module(sqlservr+00023E34)
2006-08-16 19:30:37.62 spid54      0136764A Module(sqlservr+0036764A)
2006-08-16 19:30:37.62 spid54      013674C1 Module(sqlservr+003674C1)
2006-08-16 19:30:37.62 spid54      01367356 Module(sqlservr+00367356)
2006-08-16 19:30:37.62 spid54      01BF2102 Module(sqlservr+00BF2102)
2006-08-16 19:30:37.62 spid54      01381DA5 Module(sqlservr+00381DA5)
2006-08-16 19:30:37.62 spid54      01023E34 Module(sqlservr+00023E34)
2006-08-16 19:30:37.62 spid54      01041DD5 Module(sqlservr+00041DD5)
2006-08-16 19:30:37.62 spid54      0103DFD4 Module(sqlservr+0003DFD4)
2006-08-16 19:30:37.62 spid54      01006A96 Module(sqlservr+00006A96)
2006-08-16 19:30:37.62 spid54      01006BBC Module(sqlservr+00006BBC)
2006-08-16 19:30:37.62 spid54      01006DAB Module(sqlservr+00006DAB)
2006-08-16 19:30:37.62 spid54      01447562 Module(sqlservr+00447562)
2006-08-16 19:30:37.62 spid54      0144859B Module(sqlservr+0044859B)
2006-08-16 19:30:37.62 spid54      0144789A Module(sqlservr+0044789A)
2006-08-16 19:30:37.64 spid54      01447720 Module(sqlservr+00447720)
2006-08-16 19:30:37.64 spid54      781329AA Module(MSVCR80+000029AA)
2006-08-16 19:30:37.65 spid54      78132A36 Module(MSVCR80+00002A36)

sqlservr!CMsqlXactImp::ClearAllUpdateSequenceMarkers+0x3b (CONV: thiscall)
sqlservr!CMsqlXactImp::RollbackInternal+0x3a (CONV: thiscall)
sqlservr!CMsqlXactImp::Rollback+0x31 (CONV: thiscall)
sqlservr!CAutoMsqlXact::RollbackNestedXact+0x1b (FPO: [0,0,0]) (CONV: thiscall)
sqlservr!CExecuteStatement::RollbackNestedXact+0x14 (FPO: [1,0,0]) (CONV: thiscall)
sqlservr!CExecuteStatement::FinishNormalImp+0x8c (CONV: thiscall)
sqlservr!CExecuteStatement::FinishOnExceptionImp+0x13 (CONV: thiscall)
sqlservr!CMsqlExecContext::FExecute+0x65c (CONV: thiscall)
sqlservr!CSQLSource::Execute+0x73b (CONV: thiscall)
sqlservr!process_request+0x2e3 (CONV: stdcall)
sqlservr!process_commands+0x2e0 (CONV: stdcall)
sqlservr!SOS_Task::Param::Execute+0xe2 (CONV: thiscall)
sqlservr!SOS_Scheduler::RunTask+0xb9 (CONV: thiscall)
sqlservr!SOS_Scheduler::ProcessTasks+0x141 (CONV: stdcall)
sqlservr!SchedulerManager::WorkerEntryPoint+0x1a8 (CONV: stdcall)
sqlservr!SystemThread::RunWorker+0x7f (CONV: thiscall)
sqlservr!SystemThreadDispatcher::ProcessWorker+0x225 (CONV: thiscall)
sqlservr!SchedulerManager::ThreadEntryPoint+0x143 (CONV: stdcall)
msvcr80!_callthreadstartex+0x1b (FPO: [Non-Fpo]) (CONV: cdecl)
msvcr80!_threadstartex+0x66 (FPO: [Non-Fpo]) (CONV: stdcall)

属性

文章编号: 924291 - 最后修改: 2007年11月4日 - 修订: 1.4
这篇文章中的信息适用于:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Workgroup
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Service Pack 1
关键字:?
kbmt kbautohotfix kbsql2005sp2fix kbhotfixserver kbfix kbexpertiseadvanced kbqfe kbpubtypekc KB924291 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。如果您发现了错误并希望帮助我们提高机器翻译技术,请完成文章末尾的在线调查。
点击这里察看该文章的英文版: 924291
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