Symptomy
Rozpatrzmy następujący scenariusz:
-
Istnieje tabela zawierająca dwie lub więcej kolumn typu dane bitowe w programie Microsoft SQL Server 2008 R2.
-
Utworzony indeks klastrowany zawiera dwie lub więcej kolumn typu dane.
-
W dowolnej kolumnie można utworzyć indeks nieklastrowany i określić opcję DATA_COMPRESSION .
W takiej sytuacji jest wyświetlany następujący komunikat o błędzie:
Msg 1944, poziom 16, stan 1, wiersz <numer wiersza>indeksu "<Nazwa indeksu>" nie został utworzony. Długość tego indeksu jest równa co najmniej <długości> bajtów. Maksymalna dozwolona długość klucza to <długości> bajtów.
Przyczyna
Ten problem występuje, ponieważ wymagania dotyczące miejsca na bitowych kolumnach typu danych są obliczane niepoprawnie w tym scenariuszu.
Rozwiązanie
Ten problem został po raz pierwszy rozwiązany w poniższej zbiorczej aktualizacji programu SQL Server.
Zbiorcza aktualizacja 13 dla programu SQL Server 2008 R2 z dodatkiem SP2 /en-us/help/2967540
Każda nowa Zbiorcza aktualizacja programu SQL Server zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji zbiorczej. Zapoznaj się z najnowszymi aktualizacjami zbiorczymi dla programu SQL Server:
Obejście
Aby obejść ten problem, Zmień typ danych kolumn z bit na tinyint.
Stan
Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji "dotyczy".