Przejdź do głównej zawartości
Pomoc techniczna
Zaloguj się przy użyciu konta Microsoft
Zaloguj się lub utwórz konto.
Witaj,
Wybierz inne konto.
Masz wiele kont
Wybierz konto, za pomocą którego chcesz się zalogować.

Symptomy

Po uruchomieniu aktualizacji dla tabeli, która ma indeks grupowany lub unikatowy i aktualizacja występuje w nie podstawowej kolumnie unikatowej, rekord śledzenia zmian jest niezgodny z instrukcją aktualizacji.

Załóżmy na przykład, że kolumna o nazwie "kolumna1" jest uwzględniana w indeksie grupowanym lub unikatowym. Gdy wartość kolumny zostanie zmieniona z większej na mniejszą (na przykład ze zmiany wartości z 20 na 16), tabela boczna śledzenia zmian otrzyma operację wstawiania przed operacją usunięcia. Na przykład operacja wstawiania rekordu wiersza dziennika transakcji jest odbierana przed operacją usunięcia wiersza lub przed "D" jest wstawiany znak "I".

Sys_change_version

sys_change_create_version

sys_change_operation

sys_change_column

sys_change_context

PK_column

1116

19

I

NULL

NULL

5639485628

1116

20

D

NULL

NULL

5639485628


Gdy wartość kolumny zostanie zmieniona z mniejszej na większą (na przykład zmieni wartość z 16 na 20), przed "I" zostanie wstawiona wartość "D".

Sys_change_version

sys_change_create_version

sys_change_operation

sys_change_column

sys_change_context

PK_column

1126

32

D

NULL

NULL

5639485628

1126

33

I

NULL

NULL

5639485628

Przyczyna

Ten problem występuje z powodu nieprawidłowej kolejności między parami usuwania/wstawiania w tabeli bocznej śledzenia zmian.

Rozwiązanie

Poprawka rozwiązła ten problem jest zawarta w następujących aktualizacjach dla SQL Server:

         Aktualizacja zbiorcza 8 dla SQL Server 2017

         Aktualizacja zbiorcza 9 dodatku Service Pack 1 dla SQL Server 2016

Aktualizacja zbiorcza 12 dla SQL Server 2014 z dodatkiem SP2

Informacje o kompilacjach SQL Server

Każda nowa kompilacja dla SQL Server zawiera wszystkie poprawki i poprawki zabezpieczeń, które były w poprzedniej kompilacji. Zalecamy zainstalowanie najnowszej kompilacji dla SQL Server:

Najnowsza aktualizacja zbiorcza dla SQL Server 2017

najnowsza kompilacja dla SQL Server 2016

Najnowsza aktualizacja zbiorcza dla SQL Server 2014

Stan

Firma Microsoft potwierdziła, że jest to problem w produktach firmy Microsoft wymienionych w sekcji "Dotyczy".

Więcej informacji

W przypadku tabeli z włączoną funkcją śledzenia zmian w przypadku wystąpienia aktualizacji w kolumnie innej niż podstawowa, która jest zdefiniowana jako unikatowa, do tabeli bocznej śledzenia zmian są wstawiane dwa wpisy: jeden wpis dla każdej z akcji podziału, Insert i Delete.

Gdy funkcja CHANGETABLE jest wywoływana w celu wyliczenia zmian, wpisy te są sortowane według wartości klucza podstawowego, a następnie operacje są agregowane. Jeśli aktualizacja wstawia niższą wartość, najpierw w tabeli bocznej jest uruchamiana operacja "I", a następnie operacja "D". Powoduje to zwrócenie nieprawidłowej operacji dla tego wiersza. Dzieje się tak dlatego, że ciąg "I" po "D" jest agreguje się jako "D".

Ponieważ w tabelach bocznych są zachowywane tylko wartości kluczy podstawowych, nie trzeba mieć dwóch oddzielnych wpisów. Jest tak, dopóki kolumna klucza podstawowego nie zostanie zaktualizowana.

Ten problem został rozwiązany w przypadku niepodstawowych kolumn unikatowych. W takim przypadku w przypadku aktualizacji tylko jeden wiersz jest wstawiany przez operację aktualizacji "U" zamiast dwóch wpisów o literach "D" i "I".

Informacje

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

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ą.

Czy te informacje były pomocne?

Jaka jest jakość języka?
Co wpłynęło na Twoje wrażenia?
Jeśli naciśniesz pozycję „Wyślij”, Twoja opinia zostanie użyta do ulepszania produktów i usług firmy Microsoft. Twój administrator IT będzie mógł gromadzić te dane. Oświadczenie o ochronie prywatności.

Dziękujemy za opinię!

×