none
aus CMD heraus Wert an sql-server übergeben RRS feed

  • Frage

  • Hallo

    beim Versuch, eine Sicherung einer Datenbank aus CMD heraus über sqlcmd zu starten, klappt das nicht mit der Wert-Referenzierung.

    Ich habe 3 Varianten getestet, wobei die ersten beiden funktionieren, bei der dritten, der wichtigsten, klappt es nicht:

    mein Aufruf in CMD ist immer gleich:

    set db=AuffP_HM_2020
    sqlcmd -S localhost\SQLEXPRESS01 -E -i C:\Arbeitsordner\sichernAuffPDB.sql -j

    Variante 1 funkioniert, feste Werte im SQL-Skript:

    DECLARE @myDB CHAR(13), @myFile NVARCHAR(100);
    SET @myDB = 'AuffP_HM_2020';
    SET @myFile =  'C:\Arbeitsordner\1_SQL-Server\SQL2019-SSEI-Express\Backups\' + @myDB + '.bak';
    BACKUP DATABASE @myDB TO DISK = @myFile;

    Variante 2 funkioniert, fester Werte bei der Pfad-Generierung, Wertzuweisung für Datenbank aus CMD-Variable:

    DECLARE @myDB CHAR(13), @myFile NVARCHAR(100);
    SET @myDB = 'AuffP_HM_2020';
    SET @myFile =  'C:\Arbeitsordner\1_SQL-Server\SQL2019-SSEI-Express\Backups\' + @myDB + '.bak';
    BACKUP DATABASE $(db) TO DISK = @myFile;

    Variante 3 funkioniert nicht, Wertzuweisung nur für Pfad-Generierung aus CMD-Variable:

    DECLARE @myDB CHAR(13), @myFile NVARCHAR(100);
    SET @myDB = 'AuffP_HM_2020';
    SET @myFile =  'C:\Arbeitsordner\1_SQL-Server\SQL2019-SSEI-Express\Backups\' + $(db) + '.bak';
    BACKUP DATABASE @myDB TO DISK = @myFile;

    hierbei kommt:

    Meldung "207", Ebene "16", Status "1", Server "localhost\SQLEXPRESS01", Zeile 3
    "[Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Ungültiger Spaltenname "AuffP_HM_2020"."

    Ich komme hier nicht weiter, wo steckt der Fehler?

    Gruß Tom


    Donnerstag, 15. September 2022 15:58

Antworten

Alle Antworten