The sqlcmd
utility allows you to execute Transact-SQL commands directly from the command line using ODBC, enabling SQL Server batch execution without the need for a GUI. This post contains sqlcmd
examples to help you understand it more.
sqlcmd
is essential for running SQL queries, automating tasks, and managing SQL Server directly from the command line, offering speed and simplicity, especially in environments without a GUI.
Prerequisites
Windows Users:
If you have SQL Server Management Studio (SSMS) installed, sqlcmd.exe
is likely already available.
Linux/macOS/Docker Users:
Download sqlcmd
(and bcp
) from the official Microsoft Documentation.
Version Notes
version 13.1 or higher is required for features like Always Encrypted (-g
) and Azure Active Directory Authentication (-G
).
The Microsoft ODBC Driver for SQL Server 17.6.1 or higher is needed for AAD and Kerberos authentication on macOS/Linux.
1. Finding or Downloading sqlcmd.exe
If SSMS is installed on your computer, sqlcmd
is also installed too. We can find the application file in the following directory:
C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\<version>\Tools\Binn\
Replace your SQL version number with what’s installed your end. For example, 130 shown in the above screenshot is SQL Server 2016, if 2017 it’ll be 140.
You can open this .exe file or type/run sqlcmd
within your terminal:
If connecting to a named instance of SQL Server we need to add the following parameter: -S <server-name\instance-name>
For more information, and if you are having issues connecting with sqlcmd you should look at the MS Docs.
2. Basic sqlcmd
Query Examples
Once sqlcmd
is accessible, you can connect to a SQL Server instance.
I’m going to get connected and check the logged-in user in this example:
-- Connect to the SQL Server instance sqlcmd -S <server-name> -U <username> -P <password> -- Get the SQL Server instance name SELECT @@SERVICENAME; GO -- Check the logged-in SQL Server user SELECT SUSER_NAME(); GO
Once connected, I can now list all databases on the SQL Server using the following query:
These queries help identify the SQL Server instance, confirm database access, and navigate to a specific database for additional tasks:
To exit sqlcmd
, type EXIT
and it enter.
Hope all this was useful!
Leave a Reply