2016-09-28 5 views
2

Ich verwende SQL Server 2014. Ich habe einen Verbindungsserver über ODBC zu einem Legacy-Datenbanksystem eingerichtet. Wenn ich diese Abfrage ausführen:Abfrage SQL Server Linked Server gibt leere Zeilen zurück

select * 
from openquery([MyLink], 'select Ref, FxRate from <table> where Ref=155003') 

Ich bekomme das Ergebnis mit der richtigen Anzahl von Datensätzen und Spalten.

Aber die Werte sind alle Standardwerte:

Ref FxRate 
    0  0 

In der Tabelle gibt es aktuelle Zahlen für diese. Ich konnte einen Verbindungsserver für dieselbe Datenbank von einem anderen Server aus tun. Ich habe versucht, das so gut wie möglich nachzubilden. Irgendwelche Gedanken darüber, wie Sie dies beheben können?

+0

Haben Sie versucht, 'SELECT Ref, FxRate VON LinkedServer.DataBase.schema.table WHERE Ref = 155003'? – gofr1

+0

Ja, aber das ergab das gleiche Ergebnis. – user2966852

+0

Also, was auch immer Sie verwenden, OPENQUERY, linked_server.database.schema.table Sie erhalten gleiche Nullen in der Ausgabe? Können Sie diese Abfrage direkt auf diesem Server ausführen? – gofr1

Antwort

2

Ich poste diese Antwort hier für andere. Der ODBC-Treiber war mit dem Betriebssystem der neuen Maschine nicht kompatibel. Ich kam zu dieser Schlussfolgerung, nachdem ich überprüft hatte, dass die korrekte Abfrage in der Legacy-Datenbank ausgeführt wurde, aber nur die Ergebnisse wurden nicht korrekt angezeigt (sie wurden alle ausgeblendet). Ich habe dann jegliche Codierungsprobleme ausgeschlossen. Und schließlich den ODBC-Treiber aktualisiert, der es behoben hat.