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
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
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.
Tags und Links sql-server-2008 tsql string-concatenation openrowset