Update: Fehlermeldung beim Ausführen einer benutzerdefinierten Funktion in SQL Server 2005: "ungültiger Längenparameter an die SUBSTRING-Funktion übergeben" oder "ein Übertragungsfehler aufgetreten beim Empfang von Ergebnissen vom Server"

Gilt für: Microsoft SQL Server 2005 Standard EditionMicrosoft SQL Server 2005 Developer EditionMicrosoft SQL Server 2005 Workgroup Edition

Fehler #: 1209 (SQL Hotfix)
Fehler #: 443526 (SQLBUDT)
Microsoft stellt Updates für Microsoft SQL Server 2005 als downloadbare Datei. Da die kumulativ sind, enthält jede neue Version alle Hotfixes und alle Sicherheitsupdates, die in früheren SQL Server 2005 enthalten waren.
Dieser Artikel beschreibt folgendes über diese Version des Hotfixes:
  • Durch dieses Hotfixpaket behobenen Probleme
  • Die erforderlichen Komponenten für die Installation des Hotfix-Pakets
  • Informationen, ob Sie den Computer neu starten müssen nach der Installation des Hotfix-Pakets
  • Informationen zum Austausch des Hotfix-Pakets durch ein anderes Hotfixpaket
  • Informationen dazu, ob alle Registrierungseinträge müssen
  • Das Hotfix-Paket enthaltene Dateien

Problembeschreibung


Wenn Sie eine benutzerdefinierte Funktion in SQL Server 2005 ausführen, erhalten Sie eine Fehlermeldung. Dieses Problem tritt auf, wenn Sie vor dem Ausführen einer benutzerdefinierten Funktion die folgende Anweisung ausführen:
SET FMTONLY ON
Sie erhalten eine andere Fehlermeldung von der Version von SQL Server 2005 installiert haben. Wenn Sie SQL Server 2005 Service Pack 1 (SP1) verwenden, können auch andere Probleme auftreten.

Die Originalversion von SQL Server 2005

Beim Ausführen einer benutzerdefinierten Funktion in der Originalversion von SQL Server 2005 wird die folgende Fehlermeldung angezeigt.
Msg 536, Ebene 16, Status 5, Zeile 4
Ungültiger Längenparameter an die SUBSTRING-Funktion übergeben.

SQL Server 2005 SP1

Beim Ausführen einer benutzerdefinierten Funktion in SQL Server 2005 SP1 treten folgende Probleme auf:
  • Sie erhalten die folgende Fehlermeldung:
    Msg 109, Ebene 20 Status 0, Zeile 0
    Beim Empfangen von Ergebnissen vom Server ist ein Übertragungsfehler aufgetreten. (Anbieter: Shared Memory-Anbieter, Fehler: 0 - die Pipe beendet.)
  • SQL Server-Dienst wird beendet.
  • Die folgenden Verletzung wird in der SQL Server-Fehlerprotokolldatei protokolliert:
    SqlDumpExceptionHandler: 53 Vorgang generiert schwere Ausnahmefehler c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server beendet diesen Prozess.

Problemlösung


Service Pack-Informationen

Um dieses Problem zu beheben, beziehen Sie das neueste Servicepack für SQL Server 2005. Klicken Sie für weitere Informationen auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
913089 so erhalten Sie das neueste Servicepack für SQL Server 2005

Hotfix-Informationen

Ein unterstützter Hotfix ist von Microsoft erhältlich. Dieser Hotfix soll nur der Behebung des Problems dienen, das in diesem Artikel beschrieben wird. Verwenden Sie diesen Hotfix nur auf Systemen, bei denen dieses spezielle Problem auftritt. Dieser Hotfix sollte weiteren Tests unterzogen werden. Wenn Ihr System durch dieses Problem nicht schwerwiegend beeinträchtigt ist, empfehlen wir sie, auf das nächste Softwareupdate zu warten, das diesen Hotfix enthält.

Wenn der Hotfix zum Download zur Verfügung steht, gibt es einen Abschnitt "Hotfixdownload available" ("Hotfixdownload verfügbar"), am oberen Rand dieses Knowledge Base-Artikel. Wenn dieser Abschnitt nicht angezeigt wird, wenden Sie sich an den Microsoft Customer Service and Support, um den Hotfix zu erhalten.

Hinweis Falls weitere Probleme auftreten oder andere Schritte zur Problembehandlung erforderlich sind, müssen Sie möglicherweise eine separate Serviceanfrage erstellen. Die normalen Supportkosten gelten für zusätzliche Supportfragen und Probleme, die nicht diesem speziellen Hotfix zugeordnet werden können. Eine vollständige Liste der Telefonnummern von Microsoft Customer Service and Support oder eine separate Serviceanfrage erstellen finden Sie auf der folgenden Microsoft-Website:Hinweis Das Formular "Hotfix download available" ("Hotfixdownload verfügbar") zeigt die Sprachen an, für die der Hotfix verfügbar ist. Wenn Ihre Sprache nicht angezeigt wird, ist dieser Hotfix für Ihre Sprache nicht verfügbar.

Voraussetzungen

Sie müssen SQL Server 2005 Service Pack 1 (SP1) installiert, um diesen Hotfix anwenden.

Weitere Informationen zu SQL Server 2005 Service Pack 1 finden Sie im folgenden Artikel der Microsoft Knowledge Base:

913089 so erhalten Sie das neueste Servicepack für SQL Server 2005

Informationen zum Neustart

Sie müssen den SQL Server-Dienst neu starten, nachdem Sie diesen Hotfix anwenden.

Informationen zur Registrierung

Sie haben nicht die Registrierung ändern.

Hotfix-Informationen

Dieser Hotfix enthält nur die Dateien, die in diesem Artikel beschriebenen Probleme zu beheben. Dieser Hotfix enthalten nicht alle Dateien, die Sie benötigen, um ein Produkt vollständig auf den neuesten Stand zu aktualisieren.

Die englische Version dieses Hotfixes weist Dateiattribute (oder spätere Attribute), die in der folgenden Tabelle aufgelistet sind. Die Datums- und Uhrzeitangaben für diese Dateien sind in Coordinated Universal Time (UTC) aufgelistet. Wenn Sie die Dateiinformationen anzeigen, werden sie in die lokale Zeit konvertiert. Um die Differenz zwischen UTC und der Ortszeit zu finden, verwenden Sie die Registerkarte Zeitzone unter Datum und Uhrzeit in der Systemsteuerung.
DateinameDateiversionDateigrößeDatumZeitPlattform
Hauresourcedb.ldfPC524.28817-Aug-200610:39PC
Hauresourcedb.mdfPC39,911,42417-Aug-200610:39PC
Logread.exe2005.90.2183.0398,11217-Aug-200614:13x86
Microsoft.analysisservices.adomdclient.dll9.0.2183.0543,52017-Aug-200614:13x86
Microsoft.analysisservices.deployengine.dll9.0.2183.0138,01617-Aug-200614:12x86
Microsoft.analysisservices.dll9.0.2183.01,215,26417-Aug-200614:13x86
Microsoft.sqlserver.mgdsqldumper.dll2005.90.2183.075,55217-Aug-200614:11x86
Microsoft.sqlserver.sqlenum.dll9.0.2183.0908,06417-Aug-200614:13x86
Msgprox.dll2005.90.2183.0197,92017-Aug-200614:11x86
Msmdlocal.dll9.0.2183.015,703,84017-Aug-200614:13x86
Msmdredir.dll9.0.2183.03,968,80017-Aug-200614:14x86
Replprov.dll2005.90.2183.0547,61617-Aug-200614:13x86
Replrec.dll2005.90.2183.0782,11217-Aug-200614:12x86
Sqlaccess.dll2005.90.2183.0347,93617-Aug-200614:13x86
Sqlagent90.exe2005.90.2183.0319,26417-Aug-200614:12x86
Sqlservr.exe2005.90.2183.028,959,06417-Aug-200614:13x86
Sysdbupg.sqlPC192,34619-Jul-200609:02PC
Template_hauresourcedb.ldfPC524.28817-Aug-200610:39PC
Template_hauresourcedb.mdfPC39,911,42417-Aug-200610:39PC
Xpstar90.dll2005.90.2183.0292,64017-Aug-200614:16x86
Xpstar90.rll2005.90.2183.0152,86417-Aug-200614:12PC

PROBLEMUMGEHUNG


Um dieses Problem zu umgehen, ändern Sie die Einstellung SET FMTONLY OFF, vor dem Ausführen einer benutzerdefinierten Funktion.

Status


Microsoft hat bestätigt, dass es ein Problem bei den Microsoft-Produkten handelt, die im Abschnitt "Gilt für" aufgeführt sind. Dieses Problem wurde erstmals in SQL Server 2005 Service Pack 2.

Weitere Informationen


Weitere Informationen zum Benennungsschema für Microsoft SQL Server-Updates klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base:

Neues Benennungsschema für Microsoft SQL Server-Software 822499 Pakete aktualisieren

Um weitere Informationen zur Terminologie für Softwareupdates zu erhalten, klicken Sie auf die folgende Artikelnummer, um den Artikel der Microsoft Knowledge Base anzuzeigen:

824684 Erläuterung von der standardmäßigen Standardbegriffen bei Microsoft Softwareupdates

Stapel Dumpinformationen

Stack Dumpinformationen wird 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)