KB2518808-FIX: "wyrażenie: (pCopySrc-Command) <= (int) cmdLength" błąd podczas dodawania kolumny do tabeli opublikowanej w publikacji transakcyjnej programu SQL Server 2008 R2

Firma Microsoft rozpowszechnia poprawki programu Microsoft SQL Server 2008 R2 jako jednego pliku do pobrania. Ponieważ poprawki są zbiorcze, każde nowe wydanie zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały dołączone do poprzedniej wersji poprawki SQL Server 2008 R2.

Symptomy

Rozpatrzmy następujący scenariusz:

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

  • Dodaj tabelę jako artykuł do publikacji.

  • Możesz zainicjować publikację transakcyjną i wygenerować wstępną migawkę.

  • Próba uruchomienia kwerendy w celu dodania nowej kolumny do tabeli. Na przykład spróbuj uruchomić poniższe zapytanie, aby dodać <nazwy kolumny> kolumny do nazwy tabeli<> tabeli:

    Alter table <table name> add <column name> int null

W tym scenariuszu kwerenda nie jest uruchamiana, a zostanie wyświetlony komunikat o błędzie podobny do następującego:

Lokalizacja: replschema. cpp: 1305Expression: (pCopySrc-Command) <= (int) cmdLengthSPID: <SPID>identyfikator procesu: <identyfikator procesu>

Msg 4902, poziom 16, stan 1, wiersz 2Cannot Znajdowanie obiektu <nazwy tabeli> ponieważ nie istnieje lub nie masz uprawnień. W przypadku wystąpienia tego problemu w pliku dziennika błędów programu SQL Server jest rejestrowany następujący komunikat o błędzie:

Może też wystąpić następujący nieznacznie inny błąd:

Msg 3624, poziom 20, stan 1, sp_replflush procedury, Sprawdzanie potwierdzenia systemu w wierszu 1A nie powiodło się. Zobacz dziennik błędów programu SQL Server, aby uzyskać szczegółowe informacje. Zazwyczaj błąd potwierdzenia jest spowodowany błędem oprogramowania lub uszkodzeniem danych. Aby sprawdzić, czy baza danych jest uszkodzona, warto skorzystać z polecenia DBCC CHECKDB. Jeśli użytkownik wyraził zgodę na wysłanie zrzutów do firmy Microsoft podczas konfiguracji, do firmy Microsoft zostanie wysłany mini zrzut. Aktualizacja może być dostępna w firmie Microsoft w najnowszym dodatku Service Pack lub w aktualizacji QFE z pomocy technicznej.

Ponadto w dzienniku błędów są rejestrowane następujące wpisy:

2011-03-25 08:56:14.71 spid55 błąd: 17066; ważność: 16; stan: 1.2011-03-25 08:56:14.71 spid55 SQL Server Assertion: plik: <replschema. cpp>, line = 1305 Assertion = ' (pCopySrc-Command) <= (int) cmdLength '. Ten błąd może być związany z chronometrażem. Jeśli błąd będzie nadal występował po ponownym uruchomieniu instrukcji, użyj polecenia DBCC CHECKDB w celu sprawdzenia integralności bazy danych w strukturze strukturalnej lub ponownego uruchomienia serwera w celu zapewnienia, że struktury danych w pamięci nie są uszkodzone. 2011 — 03-25 08:56:14.92 spid55 błąd: 3624; ważność: 20; stan: 1.2011-03-25 08:56:14.92 spid55 nie można sprawdzić potwierdzenia systemu Zobacz dziennik błędów programu SQL Server, aby uzyskać szczegółowe informacje. Zazwyczaj błąd potwierdzenia jest spowodowany błędem oprogramowania lub uszkodzeniem danych. Aby sprawdzić, czy baza danych jest uszkodzona, warto skorzystać z polecenia DBCC CHECKDB. Jeśli użytkownik wyraził zgodę na wysłanie zrzutów do firmy Microsoft podczas konfiguracji, do firmy Microsoft zostanie wysłany mini zrzut. Aktualizacja może być dostępna w firmie Microsoft w najnowszym dodatku Service Pack lub w aktualizacji QFE z pomocy technicznej.

Rozwiązanie

Informacje o aktualizacji zbiorczej

SQL Server 2008 R2 z dodatkiem Service Pack 1

Poprawka dotycząca tego problemu została wydana po raz pierwszy w aktualizacji zbiorczej 1 dla programu SQL Server 2008 R2 z dodatkiem Service Pack 1. Aby uzyskać więcej informacji na temat sposobu uzyskiwania tego zbiorczego pakietu aktualizacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

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

2567616 Kompilacje programu SQL Server 2008 R2, które zostały wydane po opublikowaniu dodatku Service Pack 1 dla programu SQL Server 2008 R2 SQL Server 2008 R2 Poprawka dotycząca tego problemu została wydana po raz pierwszy w aktualizacji zbiorczej 7. 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:

2507770 Pakiet aktualizacji zbiorczej 7 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, zmodyfikuj nazwę tabeli, tak aby zawierała mniej niż 8 znaków.

Stan

Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji "dotyczy".

Potrzebna dalsza pomoc?

Rozwijaj swoje umiejętności
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów firmy Microsoft

Czy te informacje były pomocne?

Dziękujemy za opinię!

Dziękujemy za opinię! Wygląda na to, że połączenie Cię z jednym z naszych agentów pomocy technicznej pakietu Office może być pomocne.

×