Poprawka: Komunikat o błędzie podczas wykonywania funkcji zdefiniowanych przez użytkownika w programie SQL Server 2005: "Nieprawidłowa długość parametr przekazany do funkcji PODCIĄG" lub "Błąd poziomu transportu wystąpił podczas odbierania wyników z serwera"

Dotyczy: Microsoft SQL Server 2005 Standard EditionMicrosoft SQL Server 2005 Developer EditionMicrosoft SQL Server 2005 Workgroup Edition

Nr błędu: 1209 (poprawki programu SQL)
Nr błędu: 443526 (SQLBUDT)
Firma Microsoft rozpowszechnia poprawki programu Microsoft SQL Server 2005 jako jeden plik do pobrania. Ponieważ poprawki są zbiorcze, każde nowe wydanie zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały dołączone do poprzedniego programu SQL Server 2005 ustalić wersji.
W tym artykule opisano następujące o tym wydaniu poprawek:
  • Problemy rozwiązane przez ten pakiet poprawek
  • Wymagania wstępne dotyczące instalacji pakietu poprawek
  • Informacji na temat tego, czy należy ponownie uruchomić komputer po zainstalowaniu pakietu poprawki
  • Informacji na temat, czy pakiet poprawek jest zastępowany przez inny pakiet poprawek
  • Informacji na temat tego, czy należy wprowadzać żadnych zmian w rejestrze
  • Pliki, które są zawarte w pakiecie poprawek

Objawy


Podczas wykonywania funkcji zdefiniowanych przez użytkownika w programie SQL Server 2005, pojawi się komunikat o błędzie. Ten problem występuje, jeśli Uruchom następującą instrukcję przed wykonaniem funkcji zdefiniowanej przez użytkownika:
SET FMTONLY ON
Zostanie wyświetlony inny komunikat o błędzie, w zależności od wersji programu SQL Server 2005, który jest zainstalowany. Jeśli używasz programu SQL Server 2005 Service Pack 1 (SP1), mogą również wystąpić inne problemy.

Oryginalnie wydanej wersji programu SQL Server 2005

Następujący komunikat o błędzie podczas wykonywania funkcji zdefiniowanych przez użytkownika w oryginalnej wersji programu SQL Server 2005.
Msg 536, poziom: 16, stan: 5, wiersz 4
Nieprawidłowa długość parametr przekazany do funkcji PODCIĄG.

SQL Server 2005 z dodatkiem SP1

Podczas wykonywania funkcji zdefiniowanej przez użytkownika programu SQL Server 2005 z dodatkiem SP1, występują następujące problemy:
  • Pojawi się następujący komunikat o błędzie:
    Msg 109, poziom 20, stanu 0, wiersz: 0
    Wystąpił błąd poziomu transportu podczas odbierania wyników z serwera. (Dostawca: Dostawca pamięci współużytkowanej, błąd: 0 - potok został zakończony.)
  • Zatrzymuje usługę SQL Server.
  • Następujące naruszenia zasad dostępu jest rejestrowane w pliku dzienniku błędów programu SQL Server:
    SqlDumpExceptionHandler: Proces 53 wygenerowany wyjątek krytyczny c0000005 EXCEPTION_ACCESS_VIOLATION. Program SQL Server kończy ten proces.

Rozwiązanie


Informacje dodatku Service pack

Aby rozwiązać ten problem, należy uzyskać najnowszy dodatek service pack dla programu SQL Server 2005. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
913089 jak uzyskać najnowszy dodatek service pack dla programu SQL Server 2005

Informacje o poprawce

Obsługiwana poprawka jest udostępniana przez firmę Microsoft. Jednak ta poprawka jest przeznaczona tylko do usunięcia problemu opisanego w tym artykule. Tylko w systemach, których dotyczy ten problem, należy zastosować tę poprawkę. Ta poprawka może być wciąż w fazie testowania. Jeśli dany system nie jest poważnie narażony na ten problem, firma Microsoft zaleca, aby poczekać na następną aktualizację oprogramowania zawierającą tę poprawkę.

Jeśli poprawka jest dostępna do pobrania, pojawi się sekcja "Poprawka dostępna do pobrania" na początku tego artykułu z bazy wiedzy Knowledge Base. Jeśli nie ma tej sekcji, skontaktuj się z Obsługą i Wsparciem Klienta Microsoft w celu uzyskania poprawki.

Uwaga Jeśli wystąpią dodatkowe błędy lub konieczność rozwiązania problemu, być może trzeba będzie utworzyć osobne zlecenie usługi. Zwykłe koszty obsługi będą zastosowane do dodatkowych pytań i problemów, których nie można rozwiązać przy użyciu określonej poprawki. Aby uzyskać pełną listę numerów telefonów działu obsługi klienta firmy Microsoft lub utworzyć osobne zlecenie usługi odwiedź następującą witrynę firmy Microsoft w sieci Web:Uwaga "Poprawka dostępna do pobrania" zawiera listę języków, dla których dostępna jest poprawka. Jeśli odpowiedni język nie jest widoczny, to dlatego, że poprawka nie jest dostępna dla danego języka.

Wymagania wstępne

Musi mieć zainstalować tę poprawkę programu SQL Server 2005 Service Pack 1 (SP1).

Aby uzyskać więcej informacji dotyczących sposobu uzyskiwania dodatku Service Pack 1 dla programu SQL Server 2005 kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

913089 jak uzyskać najnowszy dodatek service pack dla programu SQL Server 2005

Informacje dotyczące ponownego uruchamiania

Należy uruchomić ponownie usługę programu SQL Server, po zastosowaniu tej poprawki.

Informacje dotyczące rejestru

Nie masz zmiany w rejestrze.

Informacje o plikach poprawki

Ta poprawka zawiera tylko te pliki, które są wymagane do rozwiązania problemów wymienionych w tym artykule zamieszczono listę. Ta poprawka może nie zawierać wszystkich plików niezbędnych do pełnej aktualizacji produktu do nowszej kompilacji.

Wersja anglojęzyczna tej poprawki ma atrybuty plików (lub nowsze) wymienione w poniższej tabeli. Daty i godziny odpowiadające tym plikom zostały podane w formacie uniwersalnego czasu koordynowanego (UTC, Coordinated Universal Time). Po wyświetleniu informacji o pliku są konwertowane na czas lokalny. Aby zobaczyć różnicę między czasem UTC i czasem lokalnym, należy użyć karty Strefa czasowa w elemencie Data i godzina w Panelu sterowania.
Nazwa plikuWersja plikuRozmiar plikuDataGodzinaPlatforma
Hauresourcedb.ldfNie dotyczy524,28817-Aug-200610:39Nie dotyczy
Hauresourcedb.mdfNie dotyczy39,911,42417-Aug-200610:39Nie dotyczy
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.sqlNie dotyczy192,34619-Jul-200609:02Nie dotyczy
Template_hauresourcedb.ldfNie dotyczy524,28817-Aug-200610:39Nie dotyczy
Template_hauresourcedb.mdfNie dotyczy39,911,42417-Aug-200610:39Nie dotyczy
Xpstar90.dll2005.90.2183.0292,64017-Aug-200614:16x86
Xpstar90.rll2005.90.2183.0152,86417-Aug-200614:12Nie dotyczy

Obejście problemu


Aby obejść ten problem, należy zmienić ustawienie zestaw FMTONLY off przed wykonaniem funkcji zdefiniowanej przez użytkownika.

Stan


Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji "Dotyczy". Ten problem został po raz pierwszy rozwiązany w dodatku Service Pack 2 dla programu SQL Server 2005.

Więcej informacji


Aby uzyskać więcej informacji na temat schematu nazewnictwa dla aktualizacji programu Microsoft SQL Server kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

Pakiety aktualizacji 822499 nowy schemat nazewnictwa dla oprogramowania Microsoft SQL Server

Aby uzyskać więcej informacji dotyczących terminologii aktualizacji oprogramowania, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

824684 Opis standardowej terminologii używanej do opisywania aktualizacji oprogramowania firmy Microsoft

Informacje zrzut stosu

Następujące informacje zrzutu stosu jest wyświetlany w dodatku SP1 dla programu SQL Server 2005:
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)