A Microsoft SQL Server plugin for Tabularis, the lightweight database management tool.
This plugin enables Tabularis to connect to SQL Server instances, providing schema introspection, query execution, full CRUD, DDL, trigger and stored-routine management, and visual execution plans through a JSON-RPC 2.0 over stdio interface. It is written in Rust on top of tiberius with deadpool connection pooling.
Discord - Join our discord server and chat with the maintainers.
- Features
- Connection Configuration
- Supported Data Types
- Installation
- Known Limitations
- Building from Source
- Development
- Credits
- License
- Stable
tiberius+deadpoolconnection pooling with session reset (sp_reset_connection), startup scripts, and pool lifecycle handling - Schema, table, column, PK/FK, index, view, routine, and trigger introspection
- Query execution with pagination, CTE/DML classification, multiple result sets, and session-preserving batches
- Accurate affected rows, including multi-statement DML and DML
OUTPUT - INSERT/UPDATE/DELETE with composite primary keys and safe
IDENTITY_INSERTrecovery - Table/view/index/foreign-key DDL and safe
ALTER COLUMNgeneration - Trigger creation, editing, and removal
- Procedure/function management, typed
OUT/INOUTvariables, and table-valued functions - Static and runtime execution plans through
SHOWPLAN_XML/STATISTICS XML, rendered in Tabularis's Visual EXPLAIN - JavaScript-safe
BIGINTextraction and broad SQL Server type handling
| Parameter | Default | Notes |
|---|---|---|
| Host | localhost |
|
| Port | 1433 |
|
| Username | sa |
SQL authentication only |
| Password | — | |
| Database | — | The database the pool connects to |
| Startup script | — | SQL run on every new pooled connection (e.g. SET options) |
The standard Tabularis ssl_mode values map onto the TDS encryption policy:
| Mode | Behaviour |
|---|---|
disable |
Encryption off |
prefer (default) |
Encrypted, server certificate accepted |
require |
Encryption required, server certificate accepted |
verify-full |
Encryption required, certificate and hostname verified against the system trust store |
verify-ca |
Rejected — use verify-full |
Custom CA files and client certificates are rejected explicitly; strict verification uses the system trust store.
All common SQL Server types are supported for column creation and value extraction, including exact/approximate numerics (TINYINT … BIGINT, DECIMAL, MONEY, FLOAT), strings (CHAR/VARCHAR/NVARCHAR incl. MAX, TEXT/NTEXT), binary (BINARY/VARBINARY/IMAGE), date/time (DATE, TIME, DATETIME, DATETIME2, SMALLDATETIME, DATETIMEOFFSET), BIT, UNIQUEIDENTIFIER, XML, SQL_VARIANT, ROWVERSION, HIERARCHYID, and spatial (GEOGRAPHY, GEOMETRY).
BIGINT values outside JavaScript's safe integer range are delivered as strings so they round-trip without precision loss.
Open Settings → Plugins in Tabularis and install SQL Server from the plugin registry.
- Download the ZIP for your platform from the releases page.
- Extract it into the Tabularis plugins directory:
- Linux:
~/.local/share/tabularis/plugins/sqlserver/ - macOS:
~/Library/Application Support/com.debba.tabularis/plugins/sqlserver/ - Windows:
%APPDATA%\debba\tabularis\data\plugins\sqlserver\
- Linux:
- On Linux/macOS, make the binary executable:
chmod +x sqlserver-plugin - Restart Tabularis — SQL Server appears in the connection picker.
- SQL authentication only; Azure AD and Windows Integrated Authentication are follow-up work.
- Primary-key membership changes are disabled: the single-column alteration API cannot safely preserve composite PKs and referencing foreign keys.
- Custom CA files are rejected explicitly; strict verification uses the system trust store.
- Rust (stable, see
rust-toolchain.toml) just(optional, wraps the common cargo invocations)
just build # debug build
just release # release build (what the GitHub Actions workflow ships)just dev-install # build + copy binary and manifest into the Tabularis plugins dir
just uninstall # remove the installed pluginUnit tests need no database:
just test
just lint
just fmtYou can drive the plugin directly over stdio:
echo '{"jsonrpc":"2.0","method":"get_create_table_sql","params":{"table_name":"users","schema":"dbo","columns":[{"name":"id","data_type":"INT","is_nullable":false,"is_pk":true,"is_auto_increment":true,"default_value":null}]},"id":1}' \
| ./target/debug/sqlserver-pluginor use the interactive REPL:
just repljust run-sqlserver # SQL Server 2022 in Docker (sa / Str0ng!Passw0rd)
just seed-sqlserver # create and seed the tabularis_test databaseThe SQL Server driver implementation was contributed by Fabio Malpezzi, originally developed as a built-in Tabularis driver and adapted here to the plugin architecture.
Apache-2.0 — see LICENSE.
