DetailPage-MSS-KB

Knowledge Base

Artikel-ID: 936223 - Geändert am: Dienstag, 2. Februar 2010 - Version: 2.0

 
Fehler Nr.: 50001186 (SQL-Hotfix)

Auf dieser Seite

Problembeschreibung

Stellen Sie sich das folgende Szenario vor. In Microsoft SQL Server 2005 erstellen Sie einen Verbindungsserver mithilfe von SQL Native Client OLE DB-Provider (SQLNCLI). Der Verbindungsserver wird mit einem Server verknüpft, die Microsoft SQL Server 2000 installiert ist. In diesem Szenario sinngemäß folgende Fehlermeldungen beim Ausführen einer Abfrage für den Verbindungsserver:
Fehlermeldung 1
Msg 8180, Ebene 16, Status 1, Zeile 1
Eine oder mehrere Anweisungen konnte nicht vorbereitet werden.
Fehlermeldung 2
Msg 107, Level 16, Status, 2, Zeile 1
Das Spaltenpräfix ' <column_prefix_name> ' stimmt nicht mit einem Tabellennamen oder alias in der Abfrage verwendeten Namen überein.


Hinweis: Dieses Problem tritt auch in SQL Server 2008. Wenn dieses Problem, auftritt Wenn Sie eine Verbindung zu SQL Server 2000-Server in SQL Server 2008 herstellen, müssen Sie das Ablaufverfolgungsflag 4112, um dieses Problem zu beheben aktivieren. Weitere Informationen finden Sie im Abschnitt "Weitere Informationen".

Ursache

Dieses Problem tritt auf, weil SQL Server 2005 einen Ausführungsplan erzeugt, der eine Remoteabfrage hat. Remote Query mit SQL Server 2000 die erforderlichen Daten abrufen muss SQL Server 2005 ausgeführt werden. SQL Server 2000 kann nicht remote Query behandeln. Daher tritt Fehlermeldung 107 in SQL Server 2000. Fehler 107 wird dann an SQL Server 2005 weitergegeben. Aus diesem Grund 107 Fehler in SQL Server 2005 und 8180 Fehler in SQL Server 2005.

Lösung

Kumulatives Update-Informationen

Die Fehlerbehebung für dieses Problem wurde zuerst im kumulativen Update 2 freigegeben. Weitere Informationen dazu, wie Sie dieses kumulative Updatepaket für SQL Server 2005 Service Pack 2 zu erhalten klicken Sie auf die folgende KB-Artikelnummer:
936305  (http://support.microsoft.com/kb/936305/LN/ ) Kumulatives Updatepaket 2 für SQL Server 2005 Service Pack 2
Hinweis: Da die Builds kumulativ sind, enthält jede neue Update-Version des Hotfixes, und alle Sicherheitsupdates, die mit früheren SQL Server 2005 geliefert wurden beheben Version. Microsoft empfiehlt, dass Sie in Betracht ziehen Anwenden der neuesten Update-Version, die diesen Hotfix enthält. Weitere Informationen finden Sie die folgende KB-Artikelnummer:
937137  (http://support.microsoft.com/kb/937137/LN/ ) SQL Server 2005 erstellt, die nach der Veröffentlichung von SQL Server 2005 Service Pack 2 veröffentlicht wurden
Microsoft SQL Server 2005-Hotfixes sind für bestimmte SQL Server Servicepacks erstellt. Sie müssen einen SQL Server 2005 Service Pack 2-Hotfix auf eine Installation von SQL Server 2005 Service Pack 2 anwenden. Standardmäßig ist jeder Hotfix, der in einem SQL Server Servicepack zur Verfügung gestellt wird in das nächste Servicepack für SQL Server enthalten.

Abhilfe

Um dieses Problem zu umgehen, verwenden Sie Microsoft OLE DB-Provider für ODBC, um den Verbindungsserver mit SQL Server 2000 zu erstellen.

Status

Microsoft hat bestätigt, dass dies ein Problem in der Microsoft-Produkten handelt, die im Abschnitt "Beziehen sich auf" aufgeführt sind.

Weitere Informationen

Stellen Sie das kumulative Updatepaket (Build 3175) für SQL Server 2005 SP2 und SQL Server 2008 beide vor Ablaufverfolgungsflag 4112. Nachdem Sie das kumulative Updatepaket (Build 3175) für SQL Server 2005 SP2 installiert haben, müssen Sie das Ablaufverfolgungsflag 4112 zum Beheben des Problems aktivieren. Informationen zum Aktivieren eines Ablaufverfolgungsflags in SQL Server 2005 finden Sie im Abschnitt "Hinweise" von folgender Website von Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/ms188396.aspx (http://msdn2.microsoft.com/en-us/library/ms188396.aspx)

Schritte zum Reproduzieren des Problems

  1. Starten Sie SQL Server Management Studio, und dann eine Verbindung zu einer Instanz von SQL Server 2005 herstellen.
  2. Erstellen Sie eine neue Abfrage, und führen Sie die folgenden Anweisungen.
    EXEC sp_addlinkedserver
    @server = '<LinkedServerName>', 
    @provider = 'SQLNCLI', 
    @srvproduct = '', 
    @datasrc = '<InstanceName>', 
    @catalog = '<DatabaseName>' 
    
    exec sp_serveroption
    @server = '<LinkedServerName>' 
    ,@optname = 'RPC' 
    ,@optvalue = 'TRUE'
    exec sp_serveroption
    @server = '<LinkedServerName>' 
    ,@optname = 'RPC OUT' 
    ,@optvalue = 'TRUE'
    
    
    DECLARE @supervisorID varchar(40)
    set @supervisorID = 'Volume Discount'
    
    SELECT DISTINCT J.STOR_ID
    FROM   [<LinkedServerName>].[<DatabaseName>].DBO.DISCOUNTS J
    WHERE  J.DISCOUNTTYPE = @supervisorID
           AND J.DISCOUNT = (SELECT MAX(B.DISCOUNT)
                             FROM   [<LinkedServerName>].<DatabaseName>.DBO.DISCOUNTS B
                             WHERE  B.DISCOUNTTYPE = J.DISCOUNTTYPE)
    
    GO
    
    Notizen
    • <LinkedServerName>ist ein Platzhalter für den Namen des Verbindungsservers.
    • <InstanceName>ist ein Platzhalter für den Namen der Instanz für den Verbindungsserver.
    • <DatabaseName>ist ein Platzhalter für den Namen der Datenbank an.
Nachdem Sie diese Anweisungen ausgeführt haben, erhalten Sie Fehlermeldungen, die im Abschnitt "Problembeschreibung" genannt werden.

Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Workgroup
Keywords: 
kbmt kbsql2005engine kbexpertiseadvanced kbfix kbpubtypekc kbqfe KB936223 KbMtde
Maschinell übersetzter ArtikelMaschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 936223  (http://support.microsoft.com/kb/936223/en-us/ )
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
Freigeben
Weitere Supportoptionen
Microsoft Community-Supportforen
Kontaktieren Sie uns direkt
Zertifizierten Partner finden
Microsoft Store
Folgen Sie uns: