Fehler bei dynamischem SQL mit varchar(max)- Anweisung

07/08/2009 - 10:08 von Michael Broede | Report spam
Hallo NG,

die sql-Variable in folgendem Skript enthàlt praktisch einen
SELECT-Befehl, der 1900 Zeichen lang ist:

DECLARE @sql varchar(max)
SET @sql = 'SELECT ...'
EXECUTE @sql


Die Ausührung des Skripts führt zu folgendem Fehler:

Meldung 203, Ebene 16, Status 2, Zeile 4
Der Name 'select ...' ist kein gültiger Bezeichner.


Wenn ich nur die SQL-Anweisung ausgebe, etwa mit

DECLARE @sql varchar(max)
SET @sql = 'SELECT ...'
SELECT @sql

erhalte ich als Ergebnis den korrekten 1900 Zeichen lanngen SQL-Befehl,
den ich aus dem Resultset herauskopieren, in die Console einfügen und
ausführen kann.

Was mache ich beim obigen EXECUTE falsch?
Vielen Dank schon mal.

Michael
 

Lesen sie die antworten

#1 Michael Broede
07/08/2009 - 10:41 | Warnen spam
Hallo NG,

ich mach mal die Ingrid.

Michael Broede schrieb:
...
die sql-Variable in folgendem Skript enthàlt praktisch einen
SELECT-Befehl, der 1900 Zeichen lang ist:

DECLARE @sql varchar(max)
SET @sql = 'SELECT ...'
EXECUTE @sql

Die Ausührung des Skripts führt zu folgendem Fehler:
...



Die Lösung heißt Klammern. Also so:

EXECUTE (@sql)

Viele Grüße

Michael

Ähnliche fragen