Objawy
Załóżmy, że masz instrukcję UPDATE odwołującą się do nieistniejącej funkcji partycji za pomocą słowa kluczowego $PARTITION w programie Microsoft SQL Server 2014, 2016 lub 2017. Na przykład:
Uwaga
UPDATE Nazwa_tabeli SET NazwaKolumny='xyz' WHERE $PARTITION. NonExistingPartitionFunction(ColumnName) = 1
W takiej sytuacji program SQL Server nie wykonuje aktualizacji ani nie zwraca komunikatu o błędzie wskazującego, że obiekt NonExistingPartitionFunction nie istnieje. Jednak z punktu widzenia użytkownika wydaje się, że instrukcja UPDATE została wykonana pomyślnie, ale w rzeczywistości nie powiodła się.
Przyczyna
Podczas wykonywania partii program SQL Server może wykonać odroczone rozpoznawanie nazw (DNR). W tym procesie program SQL Server nie generuje natychmiast błędu po napotkaniu nieistniejącego obiektu i oczekuje, że obiekt zostanie utworzony przez moduł lub partię przed wykonaniem instrukcji odwołującej się do tego obiektu. W przypadku funkcji partycji program SQL Server nie obsługuje DNR poprawnie.
Więcej informacji
Aby uzyskać więcej informacji o DNR, zobacz Deferred Name Resolution (Rozpoznawanie nazw z opóźnieniem).
Rozwiązanie
Ten problem został rozwiązany w następujących aktualizacjach zbiorczych programu SQL Server:
Aktualizacja zbiorcza 8 dla programu SQL Server 2016 z dodatkiem SP1
Aktualizacja zbiorcza 4 dla programu SQL Server 2017
Aktualizacja zbiorcza 9 dla programu SQL Server 2014 z dodatkiem SP2
Informacje o aktualizacjach zbiorczych 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 2017
Najnowsza aktualizacja zbiorcza dla programu SQL Server 2014
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.