sqlsql-serverbatch-processing

Run all SQL files in a directory


I have a number of .sql files which I have to run in order to apply changes made by other developers on an SQL Server 2005 database. The files are named according to the following pattern:

0001 - abc.sql
0002 - abcef.sql
0003 - abc.sql
...

Is there a way to run all of them in one go?


Solution

  • Create a .BAT file with the following command:

    for %%G in (*.sql) do sqlcmd /S servername /d databaseName -E -i"%%G"
    pause
    

    If you need to provide username and passsword

    for %%G in (*.sql) do sqlcmd /S servername /d databaseName -U username -P 
    password -i"%%G"
    

    Note that the "-E" is not needed when user/password is provided

    Place this .BAT file in the directory from which you want the .SQL files to be executed, double click the .BAT file and you are done!