Announcement

Collapse
No announcement yet.

*.sql in *.sql includen?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • *.sql in *.sql includen?

    Hallo zusammen

    Ist es möglich mehrere SQL-Files in ein SQL-File zu includen, so dass ich nur eine Datei ausführen muss, die alle Scripts aufruft?

    Danke & Gruss
    poffi

  • #2
    Hallo,

    ja - diese Option steht ab dem MS SQL Server 2005 über das SQLCMD-Kommando :r zur Verfügung. Das folgende Beispiel ruft die Anweisungen aus Script2.sql aus dem Hauptscript heraus auf:
    [highlight=SQL]
    :Setvar DBName "tempdb"
    :Setvar ScriptDir "C:\Buch\SQLServer2005\Source\SQLCMD"
    :On Error exit
    :Error C:\Temp\ScriptTestError.txt
    :Out C:\Temp\ScriptTestOutput.txt

    USE $(DBName)
    GO

    CREATE TABLE ScriptTest
    (
    id INT NOT NULL IDENTITY PRIMARY KEY,
    wert NVARCHAR(9) NOT NULL
    )
    INSERT INTO ScriptTest (wert) VALUES ('Script1a');
    GO

    :r $(ScriptDir)\Script2.sql

    INSERT INTO ScriptTest (wert) VALUES ('Script1b');
    GO

    SELECT * FROM ScriptTest
    GO

    DROP TABLE ScriptTest
    GO
    [/highlight]
    In der 2. Scriptdatei wird die in der 1. Scriptdatei gesetzte Umgebungsvariable ausgelesen sowie ein weiterer Datensatz in die Tabelle eingetragen:

    [highlight=SQL]
    USE $(DBName)
    GO

    INSERT INTO ScriptTest (wert) VALUES ('Script2');
    GO
    [/highlight]
    Über den Toolbar-Button SQLCMD Mode kann der Query Editor von SSMS in den so genannten Script-Modus geschaltet werden, damit die Syntax-Hervorhebung die SQLCMD-Kommandos hervorhebt und beim Ausführen die von SQLCMD zusätzlich unterstützten Schlüsselwörter berücksichtigt werden. Das SQL Server Command Line Tool (SQLCMD.EXE) unterstützt die SQLCMD-Kommandos ebenfalls

    Comment

    Working...
    X