KB3196012 — POPRAWKA: Nieprawidłowe klucze pełnotekstowe są rejestrowane dla wierszy, które nie są poprawnie indeksowane przez indeks pełnotekstowy w SQL Server

Dotyczy
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Enterprise Core SQL Server 2012 Standard SQL Server 2014 Service Pack 2 - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2016 Service Pack 1 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

Objawy

Załóżmy, że w systemie Microsoft SQL Server 2012, 2014 lub 2016 klucz podstawowy jest tworzony dla kolumny, która zawiera duże wartości dziesiętne lub wartości liczbowe. Następnie można utworzyć indeks pełnotekstowy, używając tej kolumny jako indeksu klucza unikatowego. W takiej sytuacji, jeśli istnieją wiersze, których indeksowanie się nie powiodło, pełnotekstowa wartość klucza zostanie zarejestrowana jako liczba ujemna lub znaki Unicode. Dlatego nie można zidentyfikować wierszy, których nie można zindeksować.

Rozwiązanie

Ten problem został rozwiązany w następujących aktualizacjach zbiorczych programu SQL Server:

Aktualizacja zbiorcza 2 dla programu SQL Server 2016 z dodatkiem SP1

Aktualizacja zbiorcza 4 dla programu SQL Server 2016

     Aktualizacja zbiorcza 6 dla programu SQL Server 2012 z dodatkiem Service Pack 3

Aktualizacja zbiorcza 10 dla programu SQL Server 2014 z dodatkiem SP1
        
         Aktualizacja zbiorcza 3 dla programu SQL Server 2014 z dodatkiem SP2

Informacje o aktualizacjach zbiorczych dla programu SQL Server

Każda nowa aktualizacja zbiorcza programu SQL Server zawiera wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji skumulowanej. Sprawdź najnowsze aktualizacje zbiorcze dla programu SQL Server:

Najnowsza aktualizacja zbiorcza dla programu SQL Server 2016

Najnowsza aktualizacja zbiorcza dla programu SQL Server 2014 z dodatkiem SP1/SP2

     Najnowsza aktualizacja zbiorcza dla programu SQL Server 2012

Obejście

Aby obejść ten problem, dodaj do tabeli unikatową kolumnę bigint lub int i zamiast niej określ pełny tekst. Int i bigint prawidłowo zgłaszają swoje wartości do pełnotekstowego dziennika błędów, gdy zostanie zgłoszony wiersz lub dokument, który zakończył się niepowodzeniem. Unikatowa kolumna używana w tekście pełnotekstowym nie musi być kluczem podstawowym tabeli.

Stan

Firma Microsoft potwierdziła, że jest to problem dotyczący produktów firmy Microsoft wymienionych w sekcji „Dotyczy”.

Źródła informacji

Dowiedz się więcej o terminologii używanej przez firmę Microsoft do opisywania aktualizacji oprogramowania.