MS-SQL CLI is a unix command line tool for accessing and running arbitrary queries against an Microsoft SQL database.
- FreeTDS - Binary Library providing access to MSSQL and Sybase DBs.
 
- Install the FreeTDS Library
- Debian/Ubuntu: 
sudo apt-get install freetds-dev - Mac OSX: 
brew install freetds 
 - Debian/Ubuntu: 
 - Install mssqlcli
pip install mssqlcliOR- Clone and  
python setup.py install 
 
On Mac OS X, there is a bug with pymssql v2.1.2 which may cause this error:
error: use of undeclared identifier 'DBVERSION_80'If you see this error, simply install the latest version of pymssql from git prior to installation of mssqlcli:
pip install -e git+https://github.com/pymssql/pymssql.git#egg=pymssql-2.1.2Configuration is handled with a single YAML configuration file, located by
default at ~/.config/mssqlcli.yml.
Example Config:
keyring_app_name: another_app # Optional, defaults to mssqlcli
username: USE_KEYRING("global:LDAPUser")
password: USE_KEYRING("global:LDAP")
# OR
# username: my_plaintext_username
# password: my_plaintext_password
server: MY_MSSQL.example.com
# The below is optional, and should be used if
# Windows Auth will be used instead of MSSQL Auth.
windows_authentication: true
domain: MY_DOMAIN~ [ mssqlcli --help Usage: mssqlcli [OPTIONS] COMMAND [ARGS]...
Options:
  --version  Show the version and exit.
  -c, --config-file PATH   Override default config file location
                           (default: ~/.config/pymssql.yml).
  -o, --output [json|csv|pretty]
  --help  Show this message and exit.
Commands:
  query           Run a query against an MS-SQL Database.
  template_query
~ [ mssqlcli query --help
Usage: mssqlcli query [OPTIONS] QUERY
Options:
  --help                   Show this message and exit.
~ [ mssqlcli template_query --help
Usage: mssqlcli template_query [OPTIONS] QUERY
Options:
  -v, --variable TEXT   Variable for substitution in template. ex:"-v
                        first_name:russell" to replace {{ first_name }}
  --help                Show this message and exit.The general usage model is to store your SQL queries in flat files, and access them with the CLI client. Personally, I store my queries in ~/sql_queries.
Run Query and return results as a json blob
mssqlcli query {path to query}.sqlRun query and return results in CSV format
mssqlcli -o csv query {path to query}.sqlRedirect csv to File
mssqlcli -o csv query {path to query}.sql > results.csvRun query and return results as a json blob
mssqlcli -o json query  {path to query}.sqlSend a template query to the server in file {path to query}.sql.
mssqlcli template_query -v 'last_name: Ugur' {path to query}.sqlAn example of a templated SQL query is also given below. These are the kind of queries that can be used alongside template_query command.
SELECT * FROM bogus_db.users WHERE last_name = '{{ last_name }}';