Microsoft vertreibt Microsoft SQL Server 2008 Service Pack 2 (SP2) oder 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 in der vorherigen SQL Server 2008 SP2-oder SQL Server 2008 R2-Update Version enthalten waren.
Problembeschreibung
Stellen Sie sich folgendes Szenario vor:
-
Sie erstellen einen Verbindungsserver auf einem Computer, auf dem Microsoft SQL Server 2008 oder Microsoft SQL Server 2008 R2 ausgeführt wird. Der verknüpfte Server verweist auf eine OLE DB-Datenquelle auf einem Remoteserver.
-
Sie führen eine verteilte Abfrage aus, die einige Datenobjekte auf dem Verbindungsserver verwendet.
-
Sie führen einige Vorgänge auf einem Remoteserver aus, und die Vorgänge führen zu mehr als fünf Schema Versionsupdates für die Datenobjekte. Beispielsweise wird der Index einer Tabelle auf dem Remoteserver neu erstellt, um die Schemaversion der Tabelle auf dem Verbindungsserver zu aktualisieren.Hinweis Sie führen die Vorgänge vor der nächsten Ausführung der Abfrage aus.
-
Sie führen die verteilte Abfrage erneut auf dem Verbindungsserver aus.
In diesem Szenario wird die Abfrage nicht erneut kompiliert, und es wird eine Fehlermeldung wie die folgende angezeigt:
Server: msg 7359, Level -Level-Nummer, bundesstaatliche Nummer, Leitungsnummer der OLE DB-Anbieter "Anbietername" für den Verbindungsserver "Verbindungsservername" hat eine Änderung der SchemaVersion zwischen Kompilierzeit ("Kompilierzeit") und Laufzeit ("Laufzeit") für die Tabelle "verknüpfte Tabellenname" gemeldet.
Hinweise
-
Der Anbietername ist ein Platzhalter für den Namen des OLE DB-Anbieters.
-
Der Name der verknüpften Tabelle ist ein Platzhalter für den Namen der Tabelle, die auf dem Verbindungsserver abgefragt wird.
-
Die folgenden Anweisungen können normalerweise die Schemaversion ändern:
-
ALTER TABLE
-
Index erstellen
-
Drop-Index
-
DBCC REINDEX
-
Ursache
Dieses Problem tritt auf, weil ein rekompilierungs Limit für Abfragen erreicht wurde. Wenn am Schema eine Änderung vorgenommen wird, werden einige Objekte im Cache gelöscht, und die Abfrage erfordert einen neukompilierungs Vorgang. Eine Obergrenze für die erneute Kompilierung wird jedoch erreicht, nachdem mehr als fünf Änderungen vorgenommen wurden, die die Schemaversion aktualisieren. Daher tritt das Problem auf, das im Abschnitt "Problembeschreibung" erwähnt wird.
Fehlerbehebung
Informationen zum kumulativen Update
SQL Server 2008 R2
Der Fix für dieses Problem wurde erstmals im kumulativen Update 11 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:
2633145 Kumulatives Update Paket 11 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
SQL Server 2008 R2 Service Pack 1
Der Fix für dieses Problem wurde erstmals im kumulativen Update 4 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:
2633146 Kumulatives Update Paket 4 für SQL Server 2008 R2 Service Pack 1Hinweis 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 Service Pack 3
Der Fix für dieses Problem wurde erstmals im kumulativen Update 1 für SQL Server 2008 Service Pack 3 veröffentlicht. Wenn Sie weitere Informationen zu diesem kumulativen Updatepaket erhalten möchten, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
2617146 Kumulatives Updatepaket 1 für SQL Server 2008 Service Pack 3Hinweis Da die Builds kumulativ sind, enthält jede neue Fix-Version alle Hotfixes und alle Sicherheitsupdates, die in der vorherigen Version von SQL Server 2008 behoben wurden. Microsoft empfiehlt, die neueste Fix-Version zu verwenden, die diesen Hotfix enthält. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
2629969 Die SQL Server 2008-Builds, die nach der Veröffentlichung von SQL Server 2008 Service Pack 3 veröffentlicht wurden Microsoft SQL Server 2008-Hotfixes werden für bestimmte SQL Server-Service Packs erstellt. Sie müssen einen SQL Server 2008 Service Pack 3-Hotfix auf eine Installation von SQL Server 2008 Service Pack 3 anwenden. Standardmäßig ist jeder Hotfix, der in einem SQL Server-Service Pack bereitgestellt wird, im nächsten SQL Server-Service Pack enthalten.
Kumulatives Updatepaket 6 für SQL Server 2008 SP2
Die Lösung für dieses Problem wurde erstmals im kumulativen Updatepaket 6 veröffentlicht. Wenn Sie weitere Informationen zum beziehen dieses kumulativen Updatepakets für SQL Server 2008 SP2 erhalten möchten, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
2582285 Kumulatives Updatepaket 6 für SQL Server 2008 Service Pack 2Hinweis Da die Builds kumulativ sind, enthält jede neue Update Version alle Hotfixes und alle Sicherheitsupdates, die in der vorherigen SQL Server 2008 SP2-Update Version enthalten waren. Wir empfehlen, die neueste Update Version zu verwenden, die diesen Hotfix enthält. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
2402659 Die SQL Server 2008-Builds, die nach der Veröffentlichung von SQL Server 2008 SP2 veröffentlicht wurden
Problemumgehung
Wenden Sie eine der folgenden Methoden an, um dieses Problem zu umgehen:
-
Führen Sie die DBCC FREEPROCCACHE(' Plan_Handle ')-Anweisung aus. Weitere Informationen zum Plan_Handle -Parameter finden Sie auf der folgenden MSDN-Website:
-
Führen Sie die gespeicherte Prozedur "viewName" sp_refreshView aus.Hinweis Diese Methode funktioniert nicht, wenn das kumulative Updatepaket 3 für SQL Server 2008 SP2 installiert ist.
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.