T-SQL: Problem mit Zeichenfolge concat

8

Ich habe eine Reihe von Audiodateien mit den Namen GreenLine1.mp3, GreenLine2.mp3 e.t.c. Ich schreibe sie in eine Tabelle als BLOB (ich benutze MS SQL Server'08), hier ist meine SQL-Anfrage:

%Vor%

Ich habe einen Fehler: Falsche Syntax in der Nähe von '+', erwartet ',' oder ')'.

Wenn ich versuche,

zu schreiben
  

'C: \ Benutzer \ Ilya \ Ordner \ GreenLine' +   CAST (@num AS VARCHAR) + '.mp3'

in eine Variable und setzen Sie es nach BULK, ich bekomme falsche Syntax in der Nähe von @ Variable, erwartete STRING oder TEXT_LEX

    
Ilya Blokh 08.07.2011, 07:57
quelle

2 Antworten

12

Sie können die Parameter von OPENROWSET nicht parametrisieren oder verketten. Es sind nur konstante Werte.

Sie müssen dynamisches SQL und eine temporäre Tabelle verwenden oder SSIS verwenden, zum Beispiel

    
gbn 08.07.2011, 08:07
quelle
5

Dieser Artikel hat mich in die richtige Richtung gelenkt, als ich das gleiche Problem mit OPENQUERY hatte:

Ссылка

Grundsätzlich können Sie die gesamte Anweisung in eine Variable (nvarchar) einschließlich des openrowsets einbinden und exec sp_executesql @sql ausführen. Es wird ein wenig hässlich, um die ' s zu lesen, da du sie mit '' umgehen musst.

    
Trey Mack 16.07.2012 15:32
quelle