tsql(1) utility to test FreeTDS connections and queries


tsql { -S servername [-I interface] | -H hostname -p port }
-U username [-P password] [-o options]
tsql -C


tsql is a diagnostic tool provided as part of FreeTDS. It uses the TDS protocol directly to connect to Sybase or Microsoft SQL Servers, and allows the user to issue queries that test the capabilities of FreeTDS.

tsql is *not* a replacement for a complete isql, such as sqsh (www.sqsh.org). It is designed to rely on the lowest level FreeTDS library, tdslib, as a way to isolate potential bugs in the protocol implementation.

tsql can be run in two ways, one which uses the freetds.conf and one which connects directly using the server's hostname and port.

When -S is used, FreeTDS uses the freetds.conf (or equivalent) and environment variables in the normal way to determine the server's ip address and port. You can use -I to specify a filename, overriding FreeTDS's configuration file search algorithm.

The -H and -p parameters are provided especially for troubleshooting new configurations (or servers). Use of these parameters causes FreeTDS to ignore any freetds.conf and environment variables.


-S servername
the Database Server to which to connect.
-I interface
a freetds.conf or interfaces file describing servername
-H hostname
the DNS hostname of the server
-p port
the port at which SQL Server is listening
-U username
database login name. If username is not provided, a domain login is attempted for TDS 7+ connections.
-P password
database password.

-L list server "instances" (with -H)

prints some of the compile-time configuration parameters.
-o options
apply the options specified to every command.
No footer [result count]
No header [titles]
Print time
Print version


Typing "exit", "quit", or "bye" (or ^D) exits tsql.

Typing "version" displays the TDS protocol version.

Command batches may be separated with "go" or "GO". If "GO", the version string is reported before executing the batch.

After prompting for the password, tsql will attempt to connect to the remote

tsql displays a counter indicating the number of seconds that
it is attempting to connect.
Typically, tsql should immediately respond
with a '1>' prompt.
If you see the counter (1, 2, 3, ...), most likely tsql is unable to connect to the indicated server.

If you can connect with "tsql -S servername", your basic FreeTDS installation is working.

If you have suggestions for ways to make tsql more useful as a diagnostic tool, please recommend them to the FreeTDS mailing list for consideration.


tsql first appeared in FreeTDS 0.60.


The tsql utility was written by Brian Bruns.


Several, to be sure, now that it's documented. :)