Firma Microsoft rozpowszechnia poprawki programu Microsoft SQL Server 2008 i programu Microsoft SQL Server 2008 R2 jako jednego pliku do pobrania. Ponieważ poprawki są kumulatywne, każda nowa wersja zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej wersji programu SQL Server 2008 lub SQL Server 2008 R2 z poprawkami.

Symptomy

Rozpatrzmy następujący scenariusz:

  • Możesz utworzyć publikację transakcyjną w programie Microsoft SQL Server 2008 lub w programie Microsoft SQL Server 2008 R2.

  • Masz widok indeksowany. Właściwość ANSI_NULLS widoku indeksu ustawiana jest na wartość PRAWDA.

  • Widok indeksowany zostanie dodany do publikacji jako artykuł. Typ artykułu można ustawić na "widok indeksowany logbased". Uwaga W celu określenia typu widoku indeksowanego można użyć poniższego kodu. Zrób to, gdy uruchomisz procedurę przechowywaną sp_addarticle, aby dodać do publikacji artykuł widoku indeksowanego.

    @type = N'indexed view logbased'
  • Utworzono abonament dla publikacji transakcyjnej.

  • Widok indeksowany jest replikowany do bazy danych subskrypcji.

W tym scenariuszu Właściwość ANSI_NULLS widoku indeksowanego jest zamieniana na wartość FAŁSZ w bazie danych subskrypcji.Uwagi

  • Ten problem występuje zazwyczaj wtedy, gdy właściwość ANSI_NULLS tabel, w której występują w strukturze wyrażenia SQL widoku indeksu, jest ustawiona na wartość FAŁSZ.

  • Ten problem występuje również w programie Microsoft SQL Server 2005.

Przyczyna

Ten problem występuje, ponieważ tabele, widoki, funkcje i procedury składowane w programie SQL Server 2008 współużytkują ten sam bit magazynowania dla właściwości ANSI_NULL . W związku z tym, jeśli właściwość ANSI_NULLS jednej z tabel należących do struktury wyrażenia SQL widoku indeksowanego jest ustawiona na wartość FAŁSZ, domyślną właściwością ANSI_NULLS widoku indeksowanego będzie FAŁSZ.

Rozwiązanie

Informacje o aktualizacji zbiorczej

SQL Server 2008 z dodatkiem Service Pack 1

Poprawka dotycząca tego problemu została wydana po raz pierwszy w aktualizacji zbiorczej 10 dla programu SQL Server 2008 z dodatkiem Service Pack 1. 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:

2279604 Pakiet aktualizacji zbiorczej 10 dla programu SQL Server 2008 z dodatkiem Service Pack 1Uwaga 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:

970365 Kompilacje programu SQL Server 2008 wydane po opublikowaniu dodatku Service Pack 1 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 1 dla programu SQL Server 2008 do instalacji dodatku Service Pack 1 do 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 z dodatkiem Service Pack 2

Poprawka dotycząca tego problemu została wydana po raz pierwszy w aktualizacji zbiorczej 1 dla programu SQL Server 2008 z dodatkiem Service Pack 2. 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:

2289254 Zbiorcza aktualizacja 1 dla programu SQL Server 2008 z dodatkiem Service Pack 2Uwaga 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. 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:

2402659 Kompilacje programu SQL Server 2008 wydane po opublikowaniu dodatku Service Pack 2 dla programu SQL Server 2008

SQL Server 2008 R2

Poprawka dotycząca tego problemu została wydana po raz pierwszy w aktualizacji zbiorczej 4. 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:

2345451 Pakiet aktualizacji zbiorczej 4 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

Obejście

Aby obejść ten problem, zaktualizuj pamięć podręczną metadanych po utworzeniu widoku indeksowanego i przed uruchomieniem sp_addarticle w celu dodania artykułu widoku indeksowanego.Uwagi Aby zaktualizować pamięć podręczną metadanych, użyj jednej z następujących metod:

  • Zatrzymaj usługę SQL Server, a następnie uruchom usługę.

  • Ustaw bazę danych subskrypcji na offline, a następnie ustaw bazę danych jako w trybie online.

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 procedury składowanej sp_addarticle, odwiedź następującą witrynę firmy Microsoft w sieci Web:

Wprowadzenie do procedury składowanej w sp_addarticle (Transact-SQL)Aby uzyskać więcej informacji na temat publikowania danych i obiektów bazy danych, odwiedź następującą witrynę firmy Microsoft w sieci Web:

Publikowanie danych i obiektów bazy danychAby 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

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.