bsqldb(1) batch SQL script processor using DB-Library


bsqldb [-U username] [-P password] [-S servername] [-D database]
[-i input_file] [-o output_file] [-e error_file] [-H hostname]
[-t field_term] [-hqv]


bsqldb is a utility program distributed with FreeTDS.

bsqldb is a non-interactive equivalent of the "isql" utility programs distributed by Sybase and Microsoft. Like them, bsqldb uses the command "go" on a line by itself as a separator between batches. The last batch need not be followed by "go".

bsqldb makes use of the DB-Library API provided by FreeTDS. This API is of course also available to application developers.


-U username
Database server login name. If username is not provided, a domain login is attempted for TDS 7+ connections.
-P password
Database server password.

-S servername Database server to which to connect.

-D database
Database to use.
-i input_file
Name of script file, containing SQL.
-o output_file
Name of output file, holding result data.
-e error_file
Name of file for errors.
-t field_term
Specifies the field terminator. Default is two spaces (' '). Recognized escape sequences are tab ('\t'), carriage return ('\r'), newline ('\n'), and backslash ('\\').
Print column headers with the data to the same file.
hostname Override name of client sent to server.
Do not print column metadata, return status, or rowcount. Overrides -h.
Verbose mode, for more information about the DB-Libraryrary interaction. This also reports the result set metadata, including and return code. All verbose data are written to standard error (or -e), so as not to interfere with the data stream.


default servername


bsqldb is a filter; it reads from standard input, writes to standard output, and writes errors to standard error. The -i, -o, and -e options override these, of course.

The source code for bsqldb is intended as a model for DB-Library users. DB-Library has a rich set of functions, and it can be hard sometimes to understand how to use them, particularly the first time. If you are using it in this way and find something unclear, you are encouraged to email the author your comments.


bsqldb exits 0 on success, and >0 if the server cannot process the query.

bsqldb will report any errors returned by the server, but will continue processing. In a production environment, this behavior may be insufficiently stringent. To make it extremely intolerant of errors, change the message and error handlers to call exit(3).


bsqldb first appeared in FreeTDS 0.63.


The bsqldb utility was written by James K. Lowden <[email protected]>


Microsoft servers as of SQL Server 7.0 SP 3 do not return output parameters unless the RPC functions are used. This means bsqldb cannot return output parameters for stored procedures with these servers.