A VS Code extension for executing SQL queries against Microsoft SQL Server with support for multiple authentication methods — including Azure Service Principal, MFA/Device Code, SQL Login, and Windows Auth.
Features at a Glance
- Multi-profile connection management — save and switch between multiple SQL Server connections
- Four authentication modes — Service Principal, Device Code (MFA), SQL Login, Windows/NTLM
- Inline SQL execution — run the full file or a selection with
F5 - Rich results panel — paginated table view with export to Excel (
.xlsx) or CSV - Schema Explorer — browse profiles → databases → tables → columns in the sidebar
- SQL IntelliSense — autocomplete table names and column names while writing SQL
- Code Lens — clickable actions at the top of every
.sqlfile - Query History — last 50 queries with status, duration, and one-click re-injection
- Status bar integration — active profile and database shown when a
.sqlfile is open
Requirements
- VS Code
1.80.0or later - Network access to the target SQL Server
Getting Started
- Install the extension (
.vsix) via Extensions → Install from VSIX… - Open the Beet Data Tools panel in the Activity Bar (left sidebar).
- In the Connection Configuration panel, click ➕ to create a new profile.
- Fill in the server address, port, database, and choose an auth mode.
- Click Save Profile — the extension validates the connection before saving.
- Open or create a
.sqlfile and pressF5to execute.
Authentication Modes
| Mode | Required Fields | Use Case |
|---|---|---|
| Service Principal | Tenant ID, Client ID, Client Secret | Automated/CI pipelines, Azure AD app registrations |
| Device Code (MFA) | Tenant ID, Client ID | Interactive login with MFA; user authenticates in browser |
| SQL Login | Username, Password | Traditional SQL Server authentication |
| Windows Auth (NTLM) | Domain, Username, Password | On-premises Active Directory environments |
Secrets (passwords, client secrets) are stored in VS Code's encrypted secret storage — never in plain text.
Keyboard Shortcuts
| Shortcut | Action | Context |
|---|---|---|
F5 |
Execute SQL | .sql file focused |
Shift+F5 |
Cancel execution | .sql file focused |
Commands
| Command | Title | Description |
|---|---|---|
universalSql.execute |
Execute Query | Run the active SQL file or selection |
universalSql.cancel |
Cancel Execution | Cancel a running query |
beet-data-sql.switchProfile |
Switch Profile | Pick a different connection profile |
beet-data-sql.switchDatabase |
Switch Database | Change the active database on the current profile |
beet-data-sql.refreshSchema |
Refresh Schema | Reload the schema cache from the server |
beet-data-sql.history.inject |
Inject SQL | Insert a history item into the active editor |
beet-data-sql.history.delete |
Delete History Item | Remove a single entry from query history |
beet-data-sql.history.clearAll |
Clear All History | Delete the entire query history |
Views
Connection Configuration (Sidebar)
Configure and manage connection profiles. Includes run/stop buttons and a live status indicator.
Schema Explorer (Sidebar)
Browse all profiles, their databases, and table/column structure. Data is cached after first load; use the refresh button to reload from the server.
Query History (Sidebar)
Shows the last 50 executed queries. Each entry displays the time, profile name, success/error status, and duration. Click an entry to inject the SQL into the active editor.
SQL Query Results (Panel)
Displays query results in a paginated table. Provides toolbar actions to export data as .xlsx or .csv, or copy as JSON.
Detailed Documentation
See the docs/ folder for in-depth coverage of each feature:
- Connection Profiles
- Query Execution
- Schema Explorer & IntelliSense
- Results Panel & Export
- Query History
- Status Bar & Code Lens
Extension Settings
This extension does not contribute VS Code settings entries. All configuration is managed through the Connection Configuration panel in the sidebar.
Known Limitations
- Views and Programmability (stored procedures) folders in the Schema Explorer are listed as placeholders and not yet expanded.
- Device Code tokens are cached in memory for the VS Code session; restarting VS Code requires re-authentication.
License
Proprietary — Cadmous. All rights reserved.