2016-09-14 1 views
0

Ich versuche, einen SQL-Auftrag mit diesem TSQL-Skript auszuführen, und der folgende Fehler wird ausgelöst. Der Code läuft gut in einem Abfragefenster!SQL-Jobfehler mit OPENQUERY

Was ist das Problem mit diesem Code im SQL-Job?

SELECT *  
FROM OPENQUERY("192.168.1.1",'SET FMTONLY OFF; EXEC spNewTest @Param1 = ''Test1''') 

Fehlermeldung: Ausgeführt als Benutzer: DOMAIN \ USER. Falsche Syntax in der Nähe von '192.168.1.1'. [SQLSTATE 42000] (Error 102)

Regards, Elio Fernandes

+0

Im Allgemeinen, wenn Sie ein Problem mit einem Job haben, kopieren Sie den SQL-Befehl in ein neues Abfragefenster und versuchen Sie es dort. Auf diese Weise maskiert das Rauschen eines "Jobs" den tatsächlichen TSQL-Fehler nicht mehr. – ajeh

Antwort

0

Verwenden dieses

SELECT * FROM OPENQUERY('192.168.1.1','SET FMTONLY OFF; EXEC spNewTest @Param1 = ''Test1''') 

anstelle dieses

SELECT * FROM OPENQUERY("192.168.1.1",'SET FMTONLY OFF; EXEC spNewTest @Param1 = ''Test1''') 

EDIT: Der Unterschied zwischen der einfachen Komma und Doppel Komma ist, dass der zweite es nicht in SQL Server verwendet, kann dieser Beitrag von Vineet in 2010 die Antwort

unterstützen

What is the difference between single and double quotes in SQL?

Dank Charlie Fisch für die Beobachtung

+0

Wäre hilfreich zu erklären, warum das funktionieren würde. Auch warum würde der Wechsel von einfachen Anführungszeichen zu doppelten Anführungszeichen einen Unterschied machen. Etwas mehr Erklärung könnte hilfreich sein. –

+0

Ich habe versucht, den Job mit einem Anführungszeichen auszuführen, wie Sie sagten, und der Fehler bleibt bestehen. Derselbe Befehl in einer Abfrage funktioniert nicht so gut. –

0

Ich ersetzte die doppelten Anführungszeichen mit Quadraten Klammern [192.168.1.1] und der Job wie erwartet läuft.

Danke.

Verwandte Themen