KB2536225 — Poprawka: procedura składowana CLR zwraca wartość NULL po ponownym skompilowaniu w programie SQL Server 2008 R2 lub SQL Server 2008

Firma Microsoft rozpowszechnia poprawki programu Microsoft SQL Server 2008 R2 lub Microsoft SQL Server 2008 w postaci jednego pliku do pobrania. Ponieważ poprawki są kumulatywne, każda nowa wersja zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały dołączone do poprzedniej wersji poprawki SQL Server 2008 R2 lub SQL Server 2008.

Symptomy

Rozpatrzmy następujący scenariusz:

  • Procedurę składowaną CLR (Common Language Runtime) można utworzyć dla bazy danych programu Microsoft SQL Server 2008 R2 lub Microsoft SQL Server 2008.

  • Procedura składowana języka CLR jest implementowana jako publiczna metoda statyczna zwracająca wartość całkowitą w programie Microsoft .NET Framework.

  • Uruchamiasz aplikację, która wywołuje procedurę przechowywaną CLR. Procedura składowana języka CLR zwraca prawidłową wartość.

  • Wykonywane są operacje, które ponownie kompilują plan wykonania procedury składowanej CLR.Uwaga Aby uzyskać więcej informacji o tym, jak ponownie skompilować plan wykonania procedury przechowywanej, zobacz sekcję "więcej informacji".

  • Ponownie uruchom aplikację.

W tym scenariuszu niepoprawna procedura składowana języka CLR zwraca wartość NULL. Ponadto konieczne jest ponowne uruchomienie usługi SQL Server w celu odzyskania tego problemu.

Rozwiązanie

Informacje o aktualizacji zbiorczej

SQL Server 2008 z dodatkiem Service Pack 3

Poprawka dotycząca tego problemu została wydana po raz pierwszy w aktualizacji zbiorczej 2 dla programu SQL Server 2008 z dodatkiem Service Pack 3. Aby uzyskać więcej informacji na temat tego zbiorczego pakietu aktualizacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

2633143 Pakiet aktualizacji zbiorczej 2 dla programu SQL Server 2008 z dodatkiem Service Pack 3Uwaga Ponieważ kompilacja jest zbiorcza, każdy nowy pakiet poprawek zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały dołączone do poprzedniej wersji poprawki SQL Server 2008. Firma Microsoft zaleca zastosowanie najnowszego wydania poprawki zawierającego tę poprawkę. 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:

2629969 Kompilacje programu SQL Server 2008 wydane po opublikowaniu dodatku Service Pack 3 dla programu SQL Server 2008 Poprawki programu Microsoft SQL Server 2008 są tworzone dla określonych pakietów Service Pack programu SQL Server. Musisz zastosować poprawkę dodatku Service Pack 3 dla programu SQL Server 2008 do instalacji dodatku Service Pack 3 dla programu SQL Server 2008. Wszystkie poprawki podane w dodatku Service Pack programu SQL Server są domyślnie zawarte w następnym dodatku Service Pack dla programu SQL Server.

SQL Server 2008 R2 z dodatkiem Service Pack 1

Poprawka dotycząca tego problemu została wydana po raz pierwszy w aktualizacji zbiorczej 2 dla programu SQL Server 2008 R2 z dodatkiem Service Pack 1. Aby uzyskać więcej informacji na temat sposobu uzyskiwania tego zbiorczego pakietu aktualizacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

2567714 Pakiet aktualizacji zbiorczej 2 dla programu SQL Server 2008 R2 z dodatkiem Service Pack 1Uwaga Ponieważ kompilacja jest zbiorcza, każdy nowy pakiet poprawek zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń dołączone do poprzedniej wersji poprawki SQL Server 2008 R2. Zalecamy zastosowanie najnowszego wydania poprawki zawierającego tę poprawkę. 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:

2567616 Kompilacje programu SQL Server 2008 R2, które zostały wydane po opublikowaniu dodatku Service Pack 1 dla programu SQL Server 2008 R2

SQL Server 2008 R2

Poprawka dotycząca tego problemu została wydana po raz pierwszy w aktualizacji zbiorczej 8. Aby uzyskać więcej informacji na temat sposobu uzyskiwania tego zbiorczego pakietu aktualizacji dla programu SQL Server 2008 R2, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

2534352 Pakiet aktualizacji zbiorczej 8 dla programu SQL Server 2008 R2 Uwaga Ponieważ kompilacja jest zbiorcza, każdy nowy pakiet poprawek zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń dołączone do poprzedniej wersji poprawki SQL Server 2008 R2. Zalecamy zastosowanie najnowszego wydania poprawki zawierającego tę poprawkę. 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:

981356 Kompilacje programu SQL Server 2008 R2, które zostały wydane po opublikowaniu programu SQL Server 2008 R2

Więcej informacji

Aby ponownie skompilować plan wykonania procedury składowanej, wykonaj dowolną z następujących czynności:

  • Uruchom instrukcję DBCCFREEPROCCACHE .

  • Uruchom w tabeli lub widoku jedno z następujących instrukcji:

    • ALTER TABLE

    • ALTER VIEW

  • Uruchamianie planu wykonania, który powoduje zmianę lub usunięcie indeksów.

  • Wykonywanie operacji aktualizowania na statystykach używanych przez plan wykonania. Uwaga Możesz uruchomić instrukcję, aby wykonać operację aktualizacji , lub wykonać operację aktualizacji w sposób automatyczny.

  • Uruchom instrukcję sp_recompile .

  • Wprowadzanie wielu zmian w kluczach. Na przykład użyj konta użytkownika, które aktualizuje tabelę, do której odwołuje się instrukcja, aby uruchomić instrukcję INSERT lub delete .

  • Wstawianie lub usuwanie wielu wierszy z tabeli zawierającej wyzwalacze.

  • Użyj opcji WITH RECOMPILE , aby uruchomić procedurę składowaną.

Stan

Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji "dotyczy".

Informacje

Aby uzyskać więcej informacji na temat procedur składowanych CLR, odwiedź następującą witrynę MSDN w sieci Web:

Ogólne informacje na temat procedur składowanych CLRAby uzyskać więcej informacji dotyczących modelu obsługi przyrostowej dla programu SQL Server, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

935897 Model obsługi przyrostowej jest dostępny w zespole programu SQL Server w celu dostarczenia poprawek dotyczących zgłaszanych problemówAby uzyskać więcej informacji na temat schematu nazewnictwa dla aktualizacji programu SQL Server, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

822499Nowy schemat nazewnictwa dla pakietów aktualizacji oprogramowania Microsoft SQL ServerAby uzyskać więcej informacji o terminologii dotyczącej 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

Potrzebna dalsza pomoc?

Rozwijaj swoje umiejętności
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów firmy Microsoft

Czy te informacje były pomocne?

Dziękujemy za opinię!

Dziękujemy za opinię! Wygląda na to, że połączenie Cię z jednym z naszych agentów pomocy technicznej pakietu Office może być pomocne.

×