Ausführen gespeicherte Prozedur mit OPENQUERY
Habe ich SQL Server 2008 mit einer verknüpften Sybase-server und ich bin versucht, eine gespeicherte Prozedur ausführen, die auf dem Sybase-server mithilfe von OPENQUERY. Wenn ich eine gespeicherte Prozedur, die keine Parameter gelingt es in Ordnung. Wenn ich eine gespeicherte Prozedur mit Parametern, die es fehlschlägt. Ich habe sogar versucht eine sehr einfache gespeicherte Prozedur, die dauerte nur ein int ein, dass noch immer nicht. Unten ist die syntax, die ich verwende:
select * from
OPENQUERY([LINKSERVER],'exec database.user.my_stored_proc ''AT'',''XXXX%'',''1111'',1')
Msg 7357, Ebene 16, Status 2, Zeile 3
Nicht das Objekt "exec-Datenbank.Benutzer.my_stored_proc 'AT','XXXX%','1111',1". Der OLE DB-provider "ASEOLEDB" für den Verbindungsserver "LINKSERVER" zeigt an, dass entweder das Objekt keine Spalten oder der aktuelle Benutzer nicht über Berechtigungen für das Objekt.
Als die proc ausgeführt wird just fine ohne Parameter, ich glaube nicht, dass es eine Erlaubnis.
Ja führt nur fein auf Sybase
InformationsquelleAutor David Osborn | 2010-11-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verknüpften Servern und OPENQUERY, Edelsteine, MS SQL Server..., wolves in sheep clothing. Ich habe festgestellt, die folgenden Lösungen zu arbeiten, die beim Umgang mit Parametern
Wenn der SP ist im Grunde nur SELECT-Anweisungen, die Bewegung derselben auf eine ANSICHT, und geben Sie nur SQL-Anweisungen via OPENQUERY.
Bauen Sie die OPENQUERY-als string und verwenden Sie dann execute_sql.
InformationsquelleAutor Saif Khan
Dieser arbeitete für mich,
War ich temporäre Tabellen, und das ist, warum ich bekam Zugriff verweigert
Hier ist mehr info http://www.sommarskog.se/share_data.html#OPENQUERY
Danke!!! Dieser arbeitete für mich, wie gut!!! 🙂
Faire Warnung, dass, es gibt einige potenziell unbeabsichtigten Folgen dieser Methode, wie bereits in dieser Antwort: stackoverflow.com/a/14299989, aber es ist der einfachste Weg, zu "make it work" und vermeiden, Umgang mit DTC -, das ist wahrscheinlich noch schlimmer, so diese (
SET FMTONLY OFF
) ist ein fair-work-around.InformationsquelleAutor mrwaim
Erstelle ich eine sp, die nicht wieder irgendein Wert und es funktioniert nicht.
Ihre SP in mysql haben, um einen Wert zurückzugeben!
zum Beispiel habe ich hierzu in "mysql":
Dass "Id" und "Name" ist ein input-parameter und die "Ergebnis" ist output-parameter
und erstellen Verbindungsserver in SQL SERVER und rufen Sie es wie folgt:
Funktioniert es auch bei mir 😀
InformationsquelleAutor Amirhossein Yari
Konnte man auch sehen, ob es funktioniert vorausgehen exec mit SET FMTONLY ON:
OPENQUERY([LINKSERVER], " SET FMTONLY AUF; exec Datenbank.Benutzer.my_stored_proc "AT","XXXX%","1111",1')
Wenn Sie dies versuchen und es funktioniert, man sollte wohl Google FMTONLY+OPENQUERY um eine Idee zu bekommen, was es bedeutet.
InformationsquelleAutor Steve Kass