---
name: "bsqldb"
section: "1"
platform: "linux"
package: "freetds"
version: "1.5.20-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/bsqldb"
---

# bsqldb(1)

batch SQL script processor using DB-Library

## NAME

**bsqldb** – batch SQL script processor using DB-Library

## SYNOPSIS

**bsqldb** \[**-hqv**\] \[**-S** *servername*\] \[**-D** *database*\] \[**-U** *username*\] \[**-P** *password*\] \[**-i** *input\_file*\] \[**-o** *output\_file*\] \[**-e** *error\_file*\] \[**-H** *hostname*\] \[**-t** *field\_term*\] \[**-R** *pivot\_description*\]

## DESCRIPTION

**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.

## OPTIONS

- **-D** *database*

  Database to use.

- **-H** *hostname*

  hostname Override name of client sent to server.

- **-P** *password*

  Database server password.

- **-S** *servername*

  Database server to which to connect.

- **-U** *username*

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

- **-e** *error\_file*

  Name of file for errors.

- **-h**

  Print column headers with the data to the same file.

- **-i** *input\_file*

  Name of script file, containing SQL.

- **-o** *output\_file*

  Name of output file, holding result data.

- **-q**

  Do not print column metadata, return status, or rowcount. Overrides  **-h**.

- **-t** *field\_term*

  Specifies the field terminator. Default is two spaces (' '). Recognized escape sequences are tab ('\\t'), carriage return ('\\r'), newline ('\\n'), and backslash ('\\\\').

- **-v**

  Verbose mode, for more information about the DB-Library 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.

- **-R** *pivot\_description*

  Specify pivot trasformation. The format is ⟨*down columns*⟩ ⟨*across columns*⟩ ⟨*function*⟩ ⟨*value*⟩. Columns are specified but numbers. The format of *down* *columns* and *across* *columns* is a comma separated list of columns. *function* is either count, sum, min or max.

## ENVIRONMENT

DSQUERY default  *servername*

## NOTES

**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 defaults.

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 find something about the source code unclear, you are encouraged to email the author your comments.

## EXIT STATUS

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

For messages with severity \> 10,  **bsqldb** calls [exit(3)](/exit/3.md) with the severity level.  For example, if the severity level is 16, **bsqldb** will return an exit status of 16 to the shell.

## HISTORY

**bsqldb** first appeared in FreeTDS 0.63.

## AUTHORS

The  **bsqldb** utility was written by James K. Lowden ⟨jklowden@freetds.org⟩.

## BUGS

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.
