KB2518808-Fix: "Ausdruck: (pCopySrc-Befehl) <= (int) cmdLength"-Fehler beim Hinzufügen einer Spalte zu einer Tabelle, die in einer Transaktionsveröffentlichung in SQL Server 2008 R2 veröffentlicht wurde

Gilt für: SQL Server 2008 R2

Microsoft vertreibt Microsoft SQL Server 2008 R2-Fixes als eine herunterladbare Datei. Da die Fixes kumulativ sind, enthält jede neue Version alle Hotfixes und alle Sicherheitsupdates, die mit der vorherigen Version von SQL Server 2008 R2 behoben wurden.

Problembeschreibung


Stellen Sie sich folgendes Szenario vor:
  • Sie erstellen eine Transaktionspublikation in SQL Server 2008 R2.
  • Sie fügen der Publikation eine Tabelle als Artikel hinzu.
  • Sie initialisieren die Transaktionsveröffentlichung, und Sie generieren den Anfangssnapshot.
  • Sie versuchen, eine Abfrage auszuführen, um der Tabelle eine neue Spalte hinzuzufügen. Versuchen Sie beispielsweise, die folgende Abfrage auszuführen, um den <Spaltennamen> Spalte dem <Tabellennamen> Tabelle hinzuzufügen:
    Alter table <table name> add <column name> int null
In diesem Szenario wird die Abfrage nicht ausgeführt, und Sie erhalten eine Fehlermeldung, die der folgenden ähnelt:
Ort: replschema. cpp: 1305-Funktion: (pCopySrc) <= (int) cmdLengthSPID: <SPID>Prozess-ID: <Prozess-ID>
Msg 4902, Ebene 16, Zustand 1, Zeile 2Cannot suchen Sie das Objekt <Tabellenname> , weil es nicht vorhanden ist oder Sie nicht über die erforderlichen Berechtigungen verfügen. Wenn dieses Problem auftritt, wird die folgende Fehlermeldung in der SQL Server-Fehlerprotokolldatei protokolliert.
Sie können auch den folgenden leicht abweichenden Fehler auftreten:
Msg 3624, Stufe 20, Zustand 1, Prozedur sp_replflush, System Assertions Prüfung in Zeile 1A ist fehlgeschlagen. Weitere Informationen finden Sie im SQL Server-Fehlerprotokoll. In der Regel wird ein Assertionsfehler durch einen Softwarefehler oder Datenbeschädigung verursacht. Wenn Sie nach einer Datenbankbeschädigung suchen möchten, sollten Sie DBCC CHECKDB ausführen. Wenn Sie während des Setups zugestimmt haben, Dumps an Microsoft zu senden, wird ein Mini-dump an Microsoft gesendet. Möglicherweise ist ein Update von Microsoft im neuesten Service Pack oder in einem QFE vom technischen Support erhältlich.
Darüber hinaus werden die folgenden Einträge im Fehlerprotokoll protokolliert:
2011-03-25 08:56:14.71 spid55-Fehler: 17066, Schweregrad: 16, Zustand: 1.2011-03-25 08:56:14.71 spid55 SQL Server-Assertion: Datei: <replschema. cpp>, Zeile = 1305 fehlerhafte Assertion = ' (pCopySrc-Befehl) <= (int) cmdLength '. Dieser Fehler kann Zeit bezogen sein. Wenn der Fehler nach erneuter Ausführung der Anweisung weiterhin auftritt, verwenden Sie DBCC CHECKDB, um die Datenbank auf strukturelle Integrität zu überprüfen, oder starten Sie den Server neu, um sicherzustellen, dass die Datenstrukturen im Arbeitsspeicher nicht beschädigt sind. 2011-03-25 08:56:14.92 spid55-Fehler: 3624, Schweregrad: 20, Zustand: 1.2011-03-25 08: Weitere Informationen finden Sie im SQL Server-Fehlerprotokoll. In der Regel wird ein Assertionsfehler durch einen Softwarefehler oder Datenbeschädigung verursacht. Wenn Sie nach einer Datenbankbeschädigung suchen möchten, sollten Sie DBCC CHECKDB ausführen. Wenn Sie während des Setups zugestimmt haben, Dumps an Microsoft zu senden, wird ein Mini-dump an Microsoft gesendet. Möglicherweise ist ein Update von Microsoft im neuesten Service Pack oder in einem QFE vom technischen Support erhältlich.

Fehlerbehebung


Informationen zum kumulativen Update

SQL Server 2008 R2 Service Pack 1

Der Fix für dieses Problem wurde erstmals im kumulativen Update 1 für SQL Server 2008 R2 Service Pack 1 veröffentlicht. Wenn Sie weitere Informationen zum Abrufen dieses kumulativen Updatepakets benötigen, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
2544793 Kumulatives Update Paket 1 für SQL Server 2008 R2 Service Pack 1
Hinweis Da die Builds kumulativ sind, enthält jede neue Fix-Version alle Hotfixes und alle Sicherheitsupdates, die mit der vorherigen Version von SQL Server 2008 R2 behoben wurden. Wir empfehlen, dass Sie die neueste Fix-Version anwenden, die diesen Hotfix enthält. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
2567616 Die SQL Server 2008 R2-Builds, die nach dem Veröffentlichen von SQL Server 2008 R2 Service Pack 1 veröffentlicht wurden
SQL Server 2008 R2 Der Fix für dieses Problem wurde erstmals im kumulativen Update 7 veröffentlicht. Wenn Sie weitere Informationen zum beziehen dieses kumulativen Updatepakets für SQL Server 2008 R2 benötigen, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
2507770 Kumulatives Update Paket 7 für SQL Server 2008 R2
Hinweis Da die Builds kumulativ sind, enthält jede neue Fix-Version alle Hotfixes und alle Sicherheitsupdates, die mit der vorherigen Version von SQL Server 2008 R2 behoben wurden. Wir empfehlen, dass Sie die neueste Fix-Version anwenden, die diesen Hotfix enthält. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
981356 Die SQL Server 2008 R2-Builds, die nach der Veröffentlichung von SQL Server 2008 R2 veröffentlicht wurden

Problemumgehung


Um dieses Problem zu umgehen, ändern Sie den Tabellennamen so, dass er weniger als 8 Zeichen enthält.

Status


Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.