- Concept
- Version · 6.0
- Create
What support does Liquibase have for native executors with Microsoft SQL Server?
Last updated: August 12, 2026
SQLCMD integration arguments
Note: Syntax for each parameter is specified in kebab-case (CLI and flow file), camelCase (properties file and JAVA_OPTS), and MACRO_CASE (environment variable).
Syntax ( | Type | Description |
--sqlcmd-args
liquibase. | String | Defines extra arguments to pass to the Note: The delimiter for arguments is a space |
--sqlcmd- | String | Database to use when running SQLCMD. |
--sqlcmd- | Boolean | Indicates whether or not to keep a temporary SQL file after the execution of SQLCMD. If |
--sqlcmd- | String | Indicates the name of a temporary SQL file after the execution of SQLCMD. If no file name is specified, a name is automatically generated. |
--sqlcmd- | Boolean | Overwrites any files in the specified directory with the same name. Default: |
--sqlcmd- | String | Specify the path in which to store the temporary files after the execution of SQLCMD. If not specified, the files will be stored in the system's |
--sqlcmd- | String | Log file for SQLCMDoutput. |
--sqlcmd-path
liquibase. | String | Path to Linux:
Windows:
|
--sqlcmd- | Integer | Indicates seconds to wait for the |
Formatted SQL changeset using the runWith attribute
XML changelog with the inline SQL changeset using the runWith attribute
XML changelog pointing to an SQL file with raw SQL in it
YAML changelog pointing to an SQL file with raw SQL in it
JSON changelog pointing to an SQL file with raw SQL in it
Best practices
Do not set the
endDelimiterorsplitStatements=trueproperty on SQLCMD changesets. SQLCMD handles delimiters and statement splitting natively.Prevent hanging queries by configuring the timeout. In your
liquibase.sqlcmd.configfile, addliquibase.sqlcmd.timeout=nn, wherennis the number of seconds to wait before stopping the process.Save the output of your spool files to your temp directory by adding
liquibase.sqlcmd.keep.temp=trueto theliquibase.sqlcmd.conffile.
Example liquibase.sqlcmd.conf file
####
## Note about relative and absolute paths:
## The liquibase.sqlcmd.path must be a valid path to the SQLCMD executable.
## The liquibase.sqlcmd.timeout value can be one of:
## -1 - disable the timeout
## Any integer value > 0 (measured in seconds)
##
####
# The full path to the SQLCMD executable.
# Sample Linux path
# liquibase.sqlcmd.path=/opt/mssql-tools/bin/sqlcmd
# Sample Windows path
# liquibase.sqlcmd.path="C:\\Program Files\\Microsoft SQL Server\\Client SDK\\ODBC\\170\\Tools\\Binn\\SQLCMD.EXE"
# A valid timeout value for the execution of the SQLCMD tool
liquibase.sqlcmd.timeout=-1
# Flag to indicate whether or not to keep the temporary SQL file after execution of SQLCMD.
# True = keep False = delete (default)
liquibase.sqlcmd.keep.temp=true
# OPTIONAL Flag to designate the location to store temporary SQL file after execution of SQLCMD.
# Liquibase will attempt to use path exactly as entered, so please ensure it complies with your OS requirements.
# liquibase.sqlcmd.keep.temp.path=
# OPTIONAL Flag to designate the name of temporary SQL file after execution of SQLCMD.
# Liquibase will attempt to use the name exactly as entered, so please ensure it complies with your OS requirements.
# liquibase.sqlcmd.keep.temp.name=
# OPTIONAL Args to pass directly to SQLCMD.
# Learn about SQLCMD args at https://<link>
# Note: The delimiter for args is a space eg:" " and not "," or ";" separated.
# liquibase.sqlcmd.args=
# OPTIONAL Path to a log file for the SQLCMD output
# liquibase.sqlcmd.logFile=