Are you utilizing SQL Server? Are deployments still handled manually by certain teams or DBAs? Is there no intention to incorporate CI/CD tools due to project or budget limitations? Nonetheless, there's an opportunity to deploy multiple SQL scripts.

Introduction

In database management, executing SQL scripts is a routine task. However, when dealing with multiple SQL files, the process can become tedious and time-consuming. SQL Server provides various methods to execute SQL scripts, one of which involves using batch scripts. In this article, we will delve into how to execute multiple SQL files in SQL Server using a batch script efficiently.

Understanding Batch Scripting

Batch scripting is a powerful tool for automating tasks in Windows environments. It allows users to execute a series of commands or scripts in a sequential manner. These scripts are saved with a .bat extension and can be run by simply double-clicking them or through the command line.

Pre-requisite for Batch File

  1. This script deploys all the .sql files present in a directory or sub-directories in an order.
  2. NO SPACE in .sql file name.
  3. NO SPACE in sub-directories.
  4. To execute .sql in order, add a numeric sequence as follows:
    createtable.sql
    insertdata.sql
    execstoredproc....etc.
  5. Specify the SERVERNAME, which is mandatory.
  6. DATABASENAME is optional (Commented-out). In case enabling add (-d%dbname%) after -E at line like (SQLCMD -S%SERVERNAME% -E -d%dbname% -b -i%%G >> :: :: %logfilepath%).
  7. Specify the SCRIPTLOCATION, which is mandatory.
  8. The execution log will be captured on the same SCRIPTLOCATION for successful execution and failure.

Steps to Follow

Folder Structure


Batch File

Folder Structure- Batch file

SQL Files

SQL Files

Log File

Log File

Verify The Deployment

As a part of this process, we initiated by creating an Employee table with Id and Emp_Name columns in the first file. Subsequently, we inserted two rows in the second file, followed by altering a table to include an Email column in the third script. Finally, in the fourth script, we updated the employee records to include email addresses.

Verify The Deployment

Conclusion

Batch scripting provides a convenient way to execute multiple SQL files in SQL Server. By automating the execution process, batch scripts help streamline database management tasks, improve efficiency, and ensure consistency in deployment processes. By following the steps outlined in this article, users can easily create and execute batch scripts to handle their SQL execution needs effectively.