Ich arbeite mit einigen SQL-Skripten, die ich wiederverwendbar sein möchte, så muss ich einige Variablen verwenden.SQLCMD Variable im Pfad
ich einen Fledermaus-Skript, das den SQL-Skript mit sqlcmd
sqlcmd -S <SERVER> -v PROJECT="<PROJECTNAME>" -i .\start.sql
Im start.sql Skript ausführen, ich einen anderen SQL-Skript wie folgen auszuführen:
:r .\<PROJECTNAME>\init.sql
So habe ich fest einprogrammiert die Wert der Variablen und das funktioniert perfekt. Ich möchte die Variable selbst verwenden, aber ich kann das nicht zur Arbeit bringen.
:r .\$(PROJECT)\init.sql
Die letzte Zeile hier ist, was ich dachte, würde funktionieren. Ich habe den Wert in der Variable PROJECT ausgedruckt, indem ich das getan habe:
Das gibt mir den Wert der Variablen.
Hoffe jemand kann mir helfen, mit der Variablen das Skript im Ordner ausführen.
Vielen Dank im Voraus.
EDIT: PRINT $ (PROJECT) gab folgende Fehlermeldung: Der Name "XXX" ist in diesem Zusammenhang nicht zulässig. Gültige Ausdrücke sind Konstanten, konstante Ausdrücke und (in einigen Kontexten) Variablen. Spaltennamen sind nicht erlaubt.
XXX = Wert der Variablen.
Was bekommen Sie, wenn Sie 'PRINT $ (PROJECT)' (keine einfachen Anführungszeichen) verwenden? – artm
Woher weißt du, dass es nicht funktioniert hat? Haben Sie eine Fehlermeldung erhalten? Oder hat etwas, was passieren sollte, nicht passieren? Wenn ja, was? – BeanFrog
Nein, das ist die Sache, wenn ich: r. \ $ (PROJECT) \ init.sql es einfach überspringen, ohne irgendwelche Nachrichten. Wenn Sie jedoch $ (PROJECT) in den Variablenwert umschalten, wird das andere Skript ausgeführt. –