SQL Server - OPENQUERY
Bin ich mit einer Openquey, die hat gearbeitet fein auf SQL Server 2005, ich habe 1 server, SQL Server 2008, die funktioniert nicht auf.
Wenn ich Folgendes ausführen:
SELECT *
FROM OPENQUERY([Manchester],
'[Manchester].[PilotWebApp].[DBO].rsp_HandheldPerformance ''10/01/2009'',
''10/10/2009''')
Bekomme ich diesen Fehler:
Cannot process the object "[Manchester].[PilotWebApp].[DBO].rsp_HandheldPerformance '10/01/2009', '10/10/2009'".
The OLE DB provider "SQLNCLI" for linked server "Manchester" indicates that either the object has no columns or the current user does not have permissions on that object.
Wenn ich nur ausführen:
[Manchester].[PilotWebApp].[DBO].rsp_HandheldPerformance '10/01/2009', '10/10/2009'
funktioniert es einwandfrei. Hat sich etwas geändert in 2008?
Was es tut, bekommt die Daten von der openquery-und fügt in meine temp-Tabelle:
INSERT #TempHandheldPerformance SELECT * FROM OPENQUERY([Manchester], '[Manchester].PilotWebApp.DBO.rsp_HandheldPerformance ''10/01/2009'', ''10/10/2009''')
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sogar die Frage, es ist von 2009, ich hatte das gleiche problem en 2012!! und es war ein bisschen schwierig, die Antwort zu finden....eh nur verwendet SET NOCOUNT ON vor dem ausführen der SP
wenn Manchester die LinkedServer der Beispiel-code mit SET NOCOUNT ON sein sollte
Und zum füllen der temporären Tabelle, die ich tun
https://stackoverflow.com/a/2247200/181766
Überprüfen und sicherstellen, dass es keine linked server mit dem Namen [Manchester] auf der remote-box; Ihre syntax interpretiert werden könnte als:
Verbindung vom lokalen server zu einem verknüpften server mit dem Namen Manchester, und führen Sie dann eine gespeicherte Prozedur auf einem anderen Verbindungsserver mit dem Namen Manchester.
Stu
Versuchen add
SET FMTONLY OFF; SET NOCOUNT ON;
in Ihrer AbfrageStellen Sie sicher, dass die verknüpften server die gleichen Anmeldeinformationen wie Sie sind. Sie finden Sie auf den Verlinkten Server-Eigenschaften, dann auf Sicherheit Optionen.