This extension is designed to help developers seamlessly work with their databases, making it easier to use SQL Server or any Azure SQL service (including Azure SQL Database, Azure SQL Managed Instance, and SQL Server on Azure VMs) as the backend for their applications. With a rich set of features, mssql for Visual Studio Code enhances the development experience, offering functionalities such as:
- Connect to Microsoft SQL Server and Azure SQL Database: Seamlessly connect to your databases to manage and query data. The new Connection Dialog (
Preview
) offers a more intuitive interface, with options for entering parameters, connection strings, or browsing Azure databases. The Recent Connections panel provides quick access to previously used servers. - Create and manage connection profiles: Easily manage multiple connection profiles and quickly reconnect using your most recently used connections.
- Enhanced T-SQL Editing Experience: Write T-SQL scripts with a range of powerful features, including:
- IntelliSense for faster and more accurate coding.
- Go to Definition for exploring database objects.
- T-SQL snippets to speed up repetitive tasks.
- Syntax colorizations and T-SQL error validations.
- Support for the
GO
batch separator.
- Execute queries and View Results (
Preview
): Run your scripts and view results in a simple, yet powerful, grid with improved data visualization features:- View results in a unified interface alongside the integrated terminal and output panels or in their own tab.
- Sort results by clicking on column headers.
- Easily copy results with or without headers for use in other applications.
- Export results to multiple formats, including JSON, Excel, and CSV.
- View estimated plan and actual plan for T-SQL queries.
- Object Explorer (
Preview
): Navigate through your database objects, such as databases, tables, views, and programmability items. Enhanced filtering allows you to filter database objects by properties like name, owner, or creation date, making it easier to locate specific objects within large database hierarchies. - Table Designer (
Preview
): A visual tool for creating and managing tables in your databases. Design every aspect of the table's structure, including:- Adding columns, setting data types, and specifying default values.
- Defining primary keys and managing indexes to improve query performance.
- Setting up foreign keys to maintain data integrity across tables.
- Configuring advanced options like check constraints.
- Script As Create: Automatically generate T-SQL scripts for your table design and apply changes directly to the database.
- Query Plan Visualizer (
Preview
): Analyze SQL query performance with detailed execution plans. Key features include:- Node Navigation: Interact with each step in the execution plan, including collapsing or expanding nodes for a simplified view.
- Zoom Controls: Zoom in or out to adjust the level of detail, or use "zoom to fit" for a complete view of the plan.
- Metrics and Highlighting: Highlight key performance indicators, such as elapsed time or subtree cost, to identify bottlenecks in query execution.
- Customizable Extension Options: Configure command shortcuts, appearance, and other settings to personalize your development experience.
Get started today and experience a streamlined SQL development workflow with mssql for Visual Studio Code!
- See the mssql extension tutorial for the step by step guide.
- See the SQL developer tutorial to develop an app with C#, Java, Node.js, PHP, Python and R with SQL Server databases.
- Discover more about developing locally with Azure SQL Database by following the Azure SQL local development overview.
- Explore a variety of resources for Azure SQL Database development by visiting Azure SQL Database developer resources.
- First, install Visual Studio Code then install mssql extension by pressing F1 or ctrl+shift+p to open command palette, select Install Extension and type mssql.
- For macOS, you will need to install OpenSSL. Follow the install pre-requisite steps from DotNet Core instructions.
- Open an existing file with a .sql file extension or open a new text file (ctrl+n) and change the language mode to SQL by pressing ctrl+k,m and select SQL. mssql commands and functionalities are enabled in the SQL language mode in Visual Studio Code editor.
- Create a new connection profile using command palette by pressing F1, type sqlman to run MS SQL: Manage Connection Profile command. Select Create. See manage connection profiles for more information about how to create and edit connection profiles in your User Settings (settings.json) file.
- Connect to a database by pressing F1 and type sqlcon to run MS SQL: Connect command, then select a connection profile. You can also use a shortcut (ctrl+shift+c).
- Write T-SQL script in the editor using IntelliSense and Snippets. Type sql in the editor to list T-SQL Snippets.
- Execute T-SQL script or selection of statements in the script by pressing F1 and type sqlex to run MS SQL: Execute Query command. You can also use a shortcut (ctrl+shift+e). See customize shortcuts to learn about change shortcut key bindings to mssql commands.
- View the T-SQL script execution results and messages in result view.
The extension provides several commands in the Command Palette for working with .sql
files:
- MS SQL: Connect to SQL Server, Azure SQL Database or SQL Data Warehouse using connection profiles or recent connections.
- Create Connection Profile to create a new connection profile and connect.
- MS SQL: Disconnect from SQL Server, Azure SQL Database or SQL Data Warehouse in the editor session.
- MS SQL: Use Database to switch the database connection to another database within the same connected server in the editor session.
- MS SQL: Execute Query script, T-SQL statements or batches in the editor.
- MS SQL: Cancel Query execution in progress in the editor session.
- MS SQL: Manage Connection Profiles
- Create a new connection profile using command palette's step-by-step UI guide.
- Edit user settings file (settings.json) in the editor to manually create, edit or remove connection profiles.
- Remove an existing connection profile using command palette's step-by-step UI guide.
- Clear Recent Connection List to clear the history of recent connections.
The following Visual Studio Code settings are available for the mssql extension. These can be set in user preferences (cmd+,) or workspace settings (.vscode/settings.json)
.
See customize options and manage connection profiles for more details.
{
"mssql.maxRecentConnections": 5,
"mssql.connections":[],
"mssql.shortcuts": {
"event.toggleResultPane": "ctrl+alt+r",
"event.toggleMessagePane": "ctrl+alt+y",
"event.prevGrid": "ctrl+up",
"event.nextGrid": "ctrl+down",
"event.copySelection": "ctrl+c",
"event.maximizeGrid": "",
"event.selectAll": "",
"event.saveAsJSON": "",
"event.saveAsCSV": "",
"event.saveAsExcel": ""
},
"mssql.messagesDefaultOpen": true,
"mssql.logDebugInfo": false,
"mssql.saveAsCsv.includeHeaders": true,
"mssql.saveAsCsv.delimiter": ",",
"mssql.saveAsCsv.lineSeparator": null,
"mssql.saveAsCsv.textIdentifier": "\"",
"mssql.saveAsCsv.encoding": "utf-8",
"mssql.intelliSense.enableIntelliSense": true,
"mssql.intelliSense.enableErrorChecking": true,
"mssql.intelliSense.enableSuggestions": true,
"mssql.intelliSense.enableQuickInfo": true,
"mssql.intelliSense.lowerCaseSuggestions": false,
"mssql.resultsFontFamily": "-apple-system,BlinkMacSystemFont,Segoe WPC,Segoe UI,HelveticaNeue-Light,Ubuntu,Droid Sans,sans-serif",
"mssql.resultsFontSize": 13,
"mssql.copyIncludeHeaders": false,
"mssql.copyRemoveNewLine" : true,
"mssql.splitPaneSelection": "next",
"mssql.format.alignColumnDefinitionsInColumns": false,
"mssql.format.datatypeCasing": "none",
"mssql.format.keywordCasing": "none",
"mssql.format.placeCommasBeforeNextStatement": false,
"mssql.format.placeSelectStatementReferencesOnNewLine": false,
"mssql.applyLocalization": false,
"mssql.query.displayBitAsNumber": true,
"mssql.persistQueryResultTabs": false,
"mssql.enableRichExperiences": true,
"mssql.openQueryResultsInTabByDefault": false
"mssql.enableNewQueryResultsFeature": false
}
See the change log for a detailed list of changes in each version.
Currently this extension supports the following operating systems:
- Windows (x64 | x86 | arm64)
- macOS (x64 | arm64)
- Ubuntu 14.04 / Linux Mint 17 / Linux Mint 18 / Elementary OS 0.3
- Ubuntu 16.04 / Elementary OS 0.4
- Debian 8.2
- CentOS 7.1 / Oracle Linux 7
- Red Hat Enterprise Linux (RHEL)
- Fedora 23
- OpenSUSE 13.2
- Linux arm64
The extension will download and install a required SqlToolsService package during activation. For machines with no Internet access, you can still use the extension by choosing the
Install from VSIX...
option in the Extension view and installing a bundled release from our Releases page.
Each operating system has a .vsix file with the required service included. Pick the file for your OS, download and install to get started.
We recommend you choose a full release and ignore any alpha or beta releases as these are our daily builds used in testing.
Support for this extension is provided on our GitHub Issue Tracker. You can submit a bug report, a feature suggestion or participate in [discussions].
See the developer documentation for details on how to contribute to this extension.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.
This extension collects telemetry data, which is used to help understand how to improve the product. For example, this usage data helps to debug issues, such as slow start-up times, and to prioritize new features. While we appreciate the insights this data provides, we also know that not everyone wants to send usage data and you can disable telemetry as described in the VS Code disable telemetry reporting documentation.
The Microsoft Enterprise and Developer Privacy Statement describes the privacy statement of this software.
This extension is licensed under the MIT License. Please see the third-party notices file for additional copyright notices and license terms applicable to portions of the software.