Azure Data Studio PDF
Azure Data Studio PDF
Azure Data Studio is a cross-platform database tool for data professionals using the Microsoft family of on-
premises and cloud data platforms on Windows, MacOS, and Linux.
Previously released under the preview name SQL Operations Studio, Azure Data Studio offers a modern editor
experience with Intellisense, code snippets, source control integration, and an integrated terminal. It is engineered
with the data platform user in mind, with built in charting of query result sets and customizable dashboards.
Download and Install Azure Data Studio
Integrated Terminal
Use your favorite command-line tools (for example, Bash, PowerShell, sqlcmd, bcp, and ssh) in the Integrated
Terminal window right within the Azure Data Studio user interface. To learn about the integrated terminal, see
Integrated terminal.
Next steps
Download and Install Azure Data Studio
Connect and query SQL Server
Connect and query Azure SQL Database
Download and install Azure Data Studio
9/25/2018 • 3 minutes to read • Edit Online
NOTE
If you're updating from SQL Operations Studio and want to keep your settings, keyboard shortcuts, or code snippets, see
Move user settings.
For details about the latest release, see the release notes.
cd ~
sudo dpkg -i ./Downloads/azuredatastudio-linux-<version string>.deb
azuredatastudio
rpm Installation:
cd ~
yum install ./Downloads/azuredatastudio-linux-<version string>.rpm
azuredatastudio
tar.gz Installation:
cd ~
cp ~/Downloads/azuredatastudio-linux-<version string>.tar.gz ~
tar -xvf ~/azuredatastudio-linux-<version string>.tar.gz
echo 'export PATH="$PATH:~/azuredatastudio-linux-x64"' >> ~/.bashrc
source ~/.bashrc
azuredatastudio
NOTE
On Debian, Redhat, and Ubuntu, you may have missing dependencies. Use the following commands to install these
dependencies depending on your version of Linux:
Debian:
Redhat:
Ubuntu:
3. Copy all files in this folder and save in an easy to find location on your local drive, like your Documents
folder.
4. In your new version of Azure Data Studio, follow steps 1-2, then for step 3 paste the contents you saved
into the folder. You can also manually copy over the settings, keybindings, or snippets in their respective
locations.
Next Steps
See one of the following quickstarts to get started:
Connect & Query SQL Server
Connect & Query Azure SQL Database
Connect & Query Azure Data Warehouse
Contribute to Azure Data Studio:
https://github.com/Microsoft/azuredatastudio
Microsoft Privacy Statement and usage data collection.
Azure Data Studio release notes
9/24/2018 • 12 minutes to read • Edit Online
Known Issues
Issue #2371 Save As Excel Only Saves First Row of Data
Issue #2150: Unable to connect on Ubuntu 16.04 to SQL in a container
November 2017
release date: November 15, 2017
version: 0.23.6
Initial release of Azure Data Studio.
Next Steps
See one of the following quickstarts to get started:
Connect & Query SQL Server
Connect & Query Azure SQL Database
Connect & Query Azure Data Warehouse
Contribute to Azure Data Studio:
https://github.com/Microsoft/azuredatastudio
Quickstart: Connect and query SQL Server using
Azure Data Studio
9/24/2018 • 2 minutes to read • Edit Online
This quickstart shows how to use Azure Data Studio to connect to SQL Server, and then use Transact-SQL (T-
SQL ) statements to create the TutorialDB used in Azure Data Studio tutorials.
Prerequisites
To complete this quickstart, you need Azure Data Studio, and access to a SQL Server.
Install Azure Data Studio.
If you don't have access to a SQL Server, select your platform from the following links (make sure you remember
your SQL Login and Password!):
Windows - Download SQL Server 2017 Developer Edition
macOS - Download SQL Server 2017 on Docker
Linux - Download SQL Server 2017 Developer Edition - You only need to follow the steps up to Create and
Query Data.
Create a database
The following steps create a database named TutorialDB:
1. Right click on your server, localhost, and select New Query.
2. Paste the following snippet into the query window:
USE master
GO
IF NOT EXISTS (
SELECT name
FROM sys.databases
WHERE name = N'TutorialDB'
)
CREATE DATABASE [TutorialDB]
GO
Create a table
The query editor is still connected to the master database, but we want to create a table in the TutorialDB
database.
1. Change the connection context to TutorialDB:
2. Paste the following snippet into the query window and click Run:
NOTE
You can append this to, or overwrite the previous query in the editor. Note that clicking Run executes only the
query that is selected. If nothing is selected, clicking Run executes all queries in the editor.
After the query completes, the new Customers table appears in the list of tables. You might need to right-click
the TutorialDB > Tables node and select Refresh.
Insert rows
Paste the following snippet into the query window and click Run:
-- Insert rows into table 'Customers'
INSERT INTO dbo.Customers
([CustomerId],[Name],[Location],[Email])
VALUES
( 1, N'Orlando', N'Australia', N''),
( 2, N'Keith', N'India', N'[email protected]'),
( 3, N'Donna', N'Germany', N'[email protected]'),
( 4, N'Janet', N'United States', N'[email protected]')
GO
Next steps
Now that you've successfully connected to SQL Server and run a query, try out the Code editor tutorial.
Quickstart: Use Azure Data Studio to connect and
query Azure SQL database
9/24/2018 • 3 minutes to read • Edit Online
This quickstart demonstrates how to use Azure Data Studio to connect to an Azure SQL database, and then use
Transact-SQL (T-SQL ) statements to create the TutorialDB used in Azure Data Studio tutorials.
Prerequisites
To complete this quickstart, you need Azure Data Studio, and an Azure SQL server.
Install Azure Data Studio.
If you don't already have an Azure SQL server, complete one of the following Azure SQL Database quickstarts
(remember the server name, and login credentials!):
Create DB - Portal
Create DB - CLI
Create DB - PowerShell
2. This article uses SQL Login, but Windows Authentication is also supported. Fill in the fields as follows
using the server name, user name, and password for your Azure SQL server:
Server name The fully qualified server name The name should be something like
this:
servername.database.windows.ne
t
User name The server admin account This is the account that you specified
when you created the server.
Password (SQL Login) The password for your server admin This is the password that you
account specified when you created the
server.
Database name leave blank The name of the database you want
to connect to.
3. If your server doesn't have a firewall rule allowing Azure Data Studio to connect, the Create new firewall
rule form opens. Complete the form to create a new firewall rule. For details, see Firewall rules.
4. After successfully connecting your server opens in the Servers sidebar.
IF NOT EXISTS (
SELECT name
FROM sys.databases
WHERE name = N'TutorialDB'
)
CREATE DATABASE [TutorialDB]
GO
Create a table
The query editor is still connected to the master database, but we want to create a table in the TutorialDB
database.
1. Change the connection context to TutorialDB:
2. Paste the following snippet into the query editor and click Run:
NOTE
You can append this to, or overwrite the previous query in the editor. Note that clicking Run executes only the
query that is selected. If nothing is selected, clicking Run executes all queries in the editor.
Insert rows
Paste the following snippet into the query editor and click Run:
Clean up resources
Other articles in this collection build upon this quickstart. If you plan to continue on to work with subsequent
quickstarts, do not clean up the resources created in this quickstart. If you do not plan to continue, use the
following steps to delete resources created by this quickstart in the Azure portal. Clean up resources by deleting
the resource groups you no longer need. For details, see Clean up resources.
Next steps
Now that you've successfully connected to an Azure SQL database and ran a query, try out the Code editor
tutorial.
Quickstart: Use Azure Data Studio to connect and
query data in Azure SQL Data Warehouse
9/24/2018 • 3 minutes to read • Edit Online
This quickstart demonstrates how to use Azure Data Studio to connect to Azure SQL data warehouse, and then
use Transact-SQL statements to create, insert, and select data.
Prerequisites
To complete this quickstart, you need Azure Data Studio, and an Azure SQL data warehouse.
Install Azure Data Studio.
If you don't already have a SQL data warehouse, see Create a SQL Data Warehouse.
Remember the server name, and login credentials!
2. This article uses SQL Login, but Windows Authentication is also supported. Fill in the fields as follows using
the server name, user name, and password for your Azure SQL server:
Server name The fully qualified server name The name should be something like
this:
sqldwsample.database.windows.n
et
User name The server admin account This is the account that you specified
when you created the server.
Password (SQL Login) The password for your server admin This is the password that you
account specified when you created the
server.
3. If your server doesn't have a firewall rule allowing Azure Data Studio to connect, the Create new firewall
rule form opens. Complete the form to create a new firewall rule. For details, see Firewall rules.
4. After successfully connecting your server opens in the Servers sidebar.
IF NOT EXISTS (
SELECT name
FROM sys.databases
WHERE name = N'TutorialDB'
)
CREATE DATABASE [TutorialDB] (EDITION = 'datawarehouse', SERVICE_OBJECTIVE='DW100');
GO
Create a table
The query editor is still connected to the master database, but we want to create a table in the TutorialDB
database.
1. Change the connection context to TutorialDB:
2. Paste the following snippet into the query editor and click Run:
NOTE
You can append this to, or overwrite the previous query in the editor. Note that clicking Run executes only the query
that is selected. If nothing is selected, clicking Run executes all queries in the editor.
Insert rows
1. Paste the following snippet into the query editor and click Run:
Clean up resources
Other articles in this collection build upon this quickstart. If you plan to continue on to work with subsequent
quickstarts, do not clean up the resources created in this quickstart. If you do not plan to continue, use the
following steps to delete resources created by this quickstart in the Azure portal. Clean up resources by deleting
the resource groups you no longer need. For details, see Clean up resources.
Next steps
Now that you've successfully connected to an Azure SQL data warehouse and ran a query, try out the Code editor
tutorial.
Tutorial: Use the Transact-SQL editor to create
database objects - Azure Data Studio
9/24/2018 • 5 minutes to read • Edit Online
Creating and running queries, stored procedures, scripts, etc. are the core tasks of database professionals. This
tutorial demonstrates the key features in the T-SQL editor to create database objects.
In this tutorial, you learn how to use Azure Data Studio to:
Search database objects
Edit table data
Use snippets to quickly write T-SQL
View database object details using Peek Definition and Go to Definition
Prerequisites
This tutorial requires the SQL Server or Azure SQL Database TutorialDB. To create the TutorialDB database,
complete one of the following quickstarts:
Connect and query SQL Server using Azure Data Studio
Connect and query Azure SQL Database using Azure Data Studio
3. On the dashboard, right-click dbo.Customers (in the search widget) and select Edit Data.
TIP
For databases with many objects, use the search widget to quickly locate the table, view, etc. that you're looking for.
4. Edit the Email column in the first row, type [email protected], and press Enter to save the
change.
GO
-- example to execute the stored procedure we just created
EXECUTE dbo.getCustomer 1
GO
6. To create the stored procedure and give it a test run, press F5.
The stored procedure is now created, and the RESULTS pane displays the returned customer in JSON. To see
formatted JSON, click the returned record.
@json_val nvarchar(max)
5. Replace the body of the stored procedure with the following code:
6. In the INSERT line you just added, right-click dbo.Customers and select Peek Definition.
7. The table definition appears so you can quickly see what columns are in the table. Refer to the column list
to easily complete the statements for your stored procedure. Finish creating the INSERT statement you
added previously to complete the body of the stored procedure, and close the peek definition window:
8. Delete (or comment out) the EXECUTE command at the bottom of the query.
9. The entire statement should look like the following code:
7. Execute the script by pressing F5. The script inserts a new customer and returns the new customer's
information in JSON format. Click the result to open a formatted view.
Next steps
In this tutorial, you learned how to:
Quick search schema objects
Edit table data
Writing T-SQL script using snippets
Learn about database object details using Peek Definition and Go to Definition
To learn how to enable the five slowest queries widget, complete the next tutorial:
Enable the slow queries sample insight widget
Tutorial: Add the five slowest queries sample widget
to the database dashboard
9/24/2018 • 3 minutes to read • Edit Online
This tutorial demonstrates the process of adding one of Azure Data Studio's built-in sample widgets to the
database dashboard to quickly view a database's five slowest queries. You also learn how to view the details of the
slow queries and query plans using Azure Data Studio's features. During this tutorial, you learn how to:
Enable Query Store on a database
Add a pre-built insight widget to the database dashboard
View details about the database's slowest queries
View query execution plans for the slow queries
Azure Data Studio includes several insight widgets out-of-the-box. This tutorial shows how to add the query-data -
store-db -insight widget, but the steps are basically the same for adding any widget.
Prerequisites
This tutorial requires the SQL Server or Azure SQL Database TutorialDB. To create the TutorialDB database,
complete one of the following quickstarts:
Connect and query SQL Server using Azure Data Studio
Connect and query Azure SQL Database using Azure Data Studio
6. If this is the first time adding a new widget, the dashboard.database.widgets section should look similar
to this:
"dashboard.database.widgets": [
{
"name": "slow queries widget",
"gridItemConfig": {
"sizex": 2,
"sizey": 1
},
"widget": {
"query-data-store-db-insight": null
}
},
{
"name": "Tasks",
"gridItemConfig": {
"sizex": 1,
"sizey": 1
},
"widget": {
"tasks-widget": {}
}
},
{
"gridItemConfig": {
"sizex": 1,
"sizey": 2
},
"widget": {
"explorer-widget": {}
}
}
]
This tutorial demonstrates how to enable an insight widget on the database dashboard, providing an at-a-glance
view about the space usage for all tables in a database. During this tutorial, you learn how to:
Quickly turn on an insight widget using a built-in insight widget example
View the details of table space usage
Filter data and view label detail on an insight chart
Prerequisites
This tutorial requires the SQL Server or Azure SQL Database TutorialDB. To create the TutorialDB database,
complete one of the following quickstarts:
Connect and query SQL Server using Azure Data Studio
Connect and query Azure SQL Database using Azure Data Studio
{
"name": "Space Used by Tables",
"gridItemConfig": {
"sizex": 2,
"sizey": 1
},
"widget": {
"table-space-db-insight": null
}
},
This tutorial demonstrates how to use your own insight queries to build custom insight widgets.
During this tutorial you learn how to:
Run your own query and view it in a chart
Build a custom insight widget from the chart
Add the chart to a server or database dashboard
Add details to your custom insight widget
Prerequisites
This tutorial requires the SQL Server or Azure SQL Database TutorialDB. To create the TutorialDB database,
complete one of the following quickstarts:
Connect and query SQL Server using Azure Data Studio
Connect and query Azure SQL Database using Azure Data Studio
Run your own query and view the result in a chart view
In this step, run a sql script to query the current active sessions.
1. To open a new editor, press Ctrl+N.
2. Change the connection context to TutorialDB.
3. Paste the following query into the query editor:
4. Save the query in the editor to a *.sql file. For this tutorial, save the script as activeSession.sql.
5. To execute the query, press F5.
6. After the query results are displayed, click View as Chart, then click the Chart Viewer tab.
7. Change Chart Type to count. These settings render a count chart.
6. Paste the insight configuration JSON into dashboard.database.widgets. Database dashboard settings looks
like the following:
"dashboard.database.widgets": [
{
"name": "My-Widget",
"gridItemConfig": {
"sizex": 2,
"sizey": 1
},
"widget": {
"insights-widget": {
"type": {
"count": {
"dataDirection": "vertical",
"dataType": "number",
"legendPosition": "none",
"labelFirstColumn": false,
"columnsAsLabels": false
}
},
"queryFile": "{your file folder}/activeSession.sql"
}
}
}
]
7. Save the User Settings file and open the TutorialDB database dashboard to see the active sessions widget:
4. Save the query in the editor to a *.sql file. For this tutorial, save the script as activeSessionDetail.sql.
5. Press Ctrl+Comma to open User Settings.
6. Edit the existing dashboard.database.widgets node in your settings file:
"dashboard.database.widgets": [
{
"name": "My-Widget",
"gridItemConfig": {
"sizex": 2,
"sizey": 1
},
"widget": {
"insights-widget": {
"type": {
"count": {
"dataDirection": "vertical",
"dataType": "number",
"legendPosition": "none",
"labelFirstColumn": false,
"columnsAsLabels": false
}
},
"queryFile": "{your file folder}/activeSession.sql",
"details": {
"queryFile": "{your file folder}/activeSessionDetail.sql",
"label": "SID",
"value": "Login Name"
}
}
}
}
]
7. Save the User Settings file and open the TutorialDB database dashboard. Click the ellipsis (...) button next to
My-Widget to show the details:
Next steps
In this tutorial, you learned how to:
Run your own query and view it in a chart
Build a custom insight widget from the chart
Add the chart to a server or database dashboard
Add details to your custom insight widget
To learn how to backup and restore databases, complete the next tutorial:
Backup and restore databases.
Backup and Restore using Azure Data Studio
9/24/2018 • 2 minutes to read • Edit Online
In this tutorial, you learn how to use Azure Data Studio to:
Backup a database
View the backup status
Generate the script used to perform the backup
Restore a database
View the status of the restore task
Prerequisites
This tutorial requires the SQL Server TutorialDB. To create the TutorialDB database, complete one of the following
quickstarts:
Connect and query SQL Server using Azure Data Studio
Backup a database
1. Open the TutorialDB database dashboard (open the SERVERS sidebar (CTRL+G), expand Databases,
right-click TutorialDB, and select Manage).
2. Open the Backup database dialog (click Backup on the Tasks widget).
2. To view the backup script in the editor, right-click Backup Database succeeded and select Script.
Restore a database from a backup file
1. Open the SERVERS sidebar (CTRL+G), right-click your server, and select Manage.
2. Open the Restore database dialog (click Restore on the Tasks widget).
3. Select Backup file in the Restore from field.
4. Click the ellipses (...) in the Backup file path field, and select the latest backup file for TutorialDB.
5. Type TutorialDB_Restored in the Target database field in the Destination section to restore the backup
file to a new database.
6. Click Restore
7. To view the status of the restore operation, press CTRL+T to open the Task History sidebar.
In this tutorial, you learned how to:
Backup a database
View the backup status
Generate the script used to perform the backup
Restore a database
View the status of the restore task
Manage servers and databases with Insight widgets
in Azure Data Studio
9/24/2018 • 2 minutes to read • Edit Online
Insight widgets take the Transact-SQL (T-SQL ) queries you use to monitor servers & databases and turns them
into insightful visualizations.
Insights are customizable charts and graphs that you add to server and database monitoring dashboards. View at-
a-glance insights of your servers and databases, then drill into more details, and launch management actions that
you define.
You can build awesome server and database management dashboards similar to the following example:
To jump in and start creating different types of insight widgets, check out the following tutorials:
Build a custom insight widget
Enable built-in insight widgets
Enable the performance monitoring insight
Enable the table space usage insight
SQL Queries
Azure Data Studio tries to avoid introducing yet another language or heavy user interface so it tries to use T-SQL
as much as possible with minimal JSON configuration. Configuring insight widgets with T-SQL leverages the
countless number of existing sources of useful T-SQL queries that can be turned into insightful widgets.
Insight widgets are composed of one or two T-SQL queries:
Insight widget query is mandatory, and is the query that returns the data that appears in the widget.
Insight details query is only required if you are creating an insight details page.
An insight widget query defines a dataset that renders a count, chart, or graph. Insight details query is used to list
relevant insight detail information in a tabular format in the insight details panel.
Azure Data Studio executes insight widget queries and maps the query result set to a chart's dataset then renders
it. When users open up an insight's details, it executes the insight details query and prints out the result in a grid
view within the dialog.
The basic idea is to write a T-SQL query in a way so it can be used as a dataset of a count, chart, and graph widget.
Summary
The T-SQL query and its result set determine the insight widget behavior. Writing a query for a chart type or
mapping a right chart type for existing query is the key consideration to build an effective insight widget.
Additional resources
Query Editor
Create and use code snippets to quickly create
Transact-SQL (T-SQL) scripts in Azure Data Studio
9/24/2018 • 2 minutes to read • Edit Online
Code snippets in Azure Data Studio are templates that make it easy to create databases and database objects.
Azure Data Studio provides several T-SQL snippets to assist you with quickly generating the proper syntax.
User-defined code snippets can also be created.
2. Select the snippet you want to use, and it generates the T-SQL script. For example, select sqlCreateTable:
3. Update the highlighted fields with your specific values. For example, replace TableName and Schema with
the values for your database:
If the field you want to change is no longer highlighted (this happens when moving the cursor around the
editor), right-click the word you want to change, and select Change all occurrences:
4. Update or add any additional T-SQL you need for the selected snippet. For example, update Column1,
Column2, and add more columns.
2. Select SQL:
NOTE
Azure Data Studio inherits its code snippet functionality from Visual Studio Code so this article specifically discusses
using SQL snippets. For more detailed information, see Creating your own snippets in the Visual Studio Code
documentation.
Additional resources
For information about the SQL editor, see Code editor tutorial.
Integrated Terminal
9/24/2018 • 4 minutes to read • Edit Online
In Azure Data Studio, you can open an integrated terminal, initially starting at the root of your workspace. This can
be convenient as you don't have to switch windows or alter the state of an existing terminal to perform a quick
command-line task.
To open the terminal:
Use the Ctrl+` keyboard shortcut with the backtick character.
Use the View | Integrated Terminal menu command.
From the Command Palette (Ctrl+Shift+P ), use the View:Toggle Integrated Terminal command.
NOTE
You can still open an external shell with the Explorer Open in Command Prompt command (Open in Terminal on Mac or
Linux) if you prefer to work outside Azure Data Studio.
TIP
If you use multiple terminals extensively, you can add key bindings for the focusNext , focusPrevious and kill
commands outlined in the Key Bindings section to allow navigation between them using only the keyboard.
Configuration
The shell used defaults to $SHELL on Linux and macOS, PowerShell on Windows 10 and cmd.exe on earlier
versions of Windows. These can be overridden manually by setting terminal.integrated.shell.* in settings.
Arguments can be passed to the terminal shell on Linux and macOS using the terminal.integrated.shellArgs.*
settings.
Windows
Correctly configuring your shell on Windows is a matter of locating the right executable and updating the setting.
Below are a list of common shell executables and their default locations:
NOTE
To be used as an integrated terminal, the shell executable must be a console application so that stdin/stdout/stderr can
be redirected.
TIP
The integrated terminal shell is running with the permissions of Azure Data Studio. If you need to run a shell command with
elevated (administrator) or different permissions, you can use platform utilities such as runas.exe within a terminal.
Shell arguments
You can pass arguments to the shell when it is launched.
For example, to enable running bash as a login shell (which runs .bash_profile ), pass in the -l argument (with
double quotes):
// Linux
"terminal.integrated.shellArgs.linux": ["-l"]
KEY COMMAND
Ctrl+Up Scroll up
Other terminal commands are available and can be bound to your preferred keyboard shortcuts.
They are:
workbench.action.terminal.focus : Focus the terminal. This is like toggle but focuses the terminal instead of
hiding it, if it is visible.
workbench.action.terminal.focusNext : Focuses the next terminal instance.
workbench.action.terminal.focusPrevious : Focuses the previous terminal instance.
workbench.action.terminal.kill : Remove the current terminal instance.
workbench.action.terminal.runSelectedText : Run the selected text in the terminal instance.
workbench.action.terminal.runActiveFile : Run the active file in the terminal instance.
If no text is selected in the active editor, the line that the cursor is on is run in the terminal.
Copy & Paste
The keybindings for copy and paste follow platform standards:
Linux: Ctrl+Shift+C and Ctrl+Shift+V
Mac: Cmd+C and Cmd+V
Windows: Ctrl+C and Ctrl+V
Find
The Integrated Terminal has basic find functionality that can be triggered with Ctrl+F.
If you want Ctrl+F to go to the shell instead of launching the Find widget on Linux and Windows, you need to
remove the keybinding like so:
This article provides the steps to quickly view, edit, and create keyboard shortcuts in Azure Data Studio.
Because Azure Data Studio inherits its key binding functionality from Visual Studio Code, detailed information
about advanced customizations, using different keyboard layouts, etc., is in the Key Bindings for Visual Studio Code
article. Some keybinding features may not be available (for example, Keymap extensions are not supported in
Azure Data Studio).
TIP
Search by key, by command, by source, etc. to return all relevant keyboard shortcuts.
2. Press the desired combination of keys, then press Enter to save it.
Explore Azure SQL resources with Azure Resource
Explorer
9/24/2018 • 2 minutes to read • Edit Online
In this document, you learn how you can explore and manage Azure SQL Server, Azure SQL database, and Azure
SQL Managed Instance resources through Azure Resource Explorer in Azure Data Studio.
NOTE
The Azure Resource Explorer will be supported in SQL Server 2019 preview in October. After that, you can install the preview
extension through extension manager or through File > Install Package from VSIX Package.
Connect to Azure
After installing the SQL preview plugin, an Azure icon appears in the left menu bar. Click the icon to open Azure
Resource Explorer. If you don't see the Azure icon, right click the left menu bar, and select Azure Resource
Explorer.
Add an Azure account
To view the SQL resources associated with an Azure account, you must first add the account to Azure Data Studio.
1. Open Linked Accounts dialog through the account management icon on the left bottom, or through Sign
in to Azure... link in Azure Resource Explorer.
2. In the Linked Accounts dialog, click Add an account.
3. Click Copy and Open to open the browser for authentication.
4. Paste the User code in the web page and click Continue to authenticate.
5. In Azure Data Studio you should now find the logged in Azure account in Linked Accounts dialog.
Add more Azure accounts
Multiple Azure accounts are supported in Azure Data Studio. To add more Azure accounts, click the button on the
right top of Linked Accounts dialog and follow the same steps with Add an Azure account section to add more
Azure accounts.
Remove an Azure account
To remove an existing logged in Azure account:
1. Open Linked Accounts dialog through the account management icon on the left bottom.
2. Click the X button at the right of the Azure account to remove it.
Filter subscription
Once logged in to an Azure account, all subscriptions associated with that Azure account display in Azure Resource
Explorer. You can filter subscriptions for each Azure account.
1. Click the Select Subscription button at right of the Azure account.
2. Select the check boxes for the account subscriptions you want to browse and then click OK.
Explore Azure SQL resources
To navigate an Azure SQL resource in Azure Resource Explorer, expand the Azure accounts and resource type
group.
Azure Resource Explorer supports Azure SQL Server, Azure SQL Database and Azure SQL Managed Instance
currently.
Next steps
Use Azure Data Studio to connect and query Azure SQL database
Use Azure Data Studio to connect and query data in Azure SQL Data Warehouse
Server groups in Azure Data Studio
9/24/2018 • 2 minutes to read • Edit Online
Server groups provide a way to organize your connections to the servers and databases you work with. When you
create server groups, the configuration details are saved into User Settings.
To edit an existing server group, right-click the group, and select Edit Server Group.
To edit available server group colors, edit the Server Groups values in User Settings.
TIP
You can drag and drop servers between different Server Groups.
Additional resources
Workspace and User settings
Using source control in Azure Data Studio
9/24/2018 • 2 minutes to read • Edit Online
2. Enter the path to the folder you want to initialize as a Git repository and press Enter.
Working with Git repositories
Azure Data Studio inherits its Git implementation from VS Code, but does not currently support additional SCM
providers. For the details about working with Git after you open or initialize a repository, see Git support in VS
Code.
Additional resources
Git documentation
User and Workspace Settings
9/24/2018 • 2 minutes to read • Edit Online
It is easy to configure Azure Data Studio to your liking through settings. Nearly every part of Azure Data Studio's
editor, user interface, and functional behavior has options you can modify.
Azure Data Studio provides two different scopes for settings:
User These settings apply globally to any instance of Azure Data Studio you open.
Workspace Workspace settings are settings specific to a folder on your computer, and are only available when
the folder is open in the Explorer sidebar. Settings defined on this scope override the user scope.
Changes to settings are reloaded by Azure Data Studio after the modified settings.json file is saved.
Note: Workspace settings are useful for sharing project-specific settings across a team.
Hot Exit
Azure Data Studio remembers unsaved changes to files when you exit by default. This is the same as the hot exit
feature in Visual Studio Code.
By default, hot exit is off. Enable hot exit by editing the files.hotExit setting. For details, see Hot Exit (in the
Visual Studio Code documentation).
Tab color
To simplify identifying what connections you are working with, open tabs in the editor can have their colors set to
match the color of the Server Group the connection belongs to. By default, tab colors are off by default. Enable tab
colors by editing the sql.tabColorMode setting.
Additional resources
Because Azure Data Studio inherits its user and workspace settings functionality from Visual Studio Code, detailed
information about settings is in the Settings for Visual Studio Code article.
Connect Azure Data Studio to your SQL Server using
Windows authentication - Kerberos
9/24/2018 • 3 minutes to read • Edit Online
Prerequisites
Access to a Windows domain-joined machine in order to query your Kerberos Domain Controller.
SQL Server should be configured to allow Kerberos authentication. For the client driver running on Unix,
integrated authentication is only supported using Kerberos. More information on setting up Sql Server to
authenticate using Kerberos can be found here. There should be SPNs registered for each instance of Sql Server
you are trying to connect to. Details about the format of SQL Server SPNs are listed here
Sample Output
DC: \\dc-33.domain.company.com
Address: \\2111:4444:2111:33:1111:ecff:ffff:3333
...
The command completed successfully
Copy the DC name that is the required KDC configuration value, in this case dc-33.domain.company.com
<...>
# The primary network interface
auth eth0
iface eth0 inet dhcp
dns-nameservers **<AD domain controller IP address>**
dns-search **<AD domain name>**
NOTE
The network interface (eth0) might differ for different machines. To find out which one you are using, run ifconfig and copy
the interface that has an IP address and transmitted and received bytes.
Now check that your /etc/resolv.conf file contains a line like the following:
Edit the /etc/sysconfig/network-scripts/ifcfg-eth0 file (or other interface config file as appropriate) so that your
AD domain controller's IP address is listed as a DNS server:
<...>
PEERDNS=no
DNS1=**<AD domain controller IP address>**
Now check that your /etc/resolv.conf file contains a line like the following:
sudo vi /etc/krb5.conf
[libdefaults]
default_realm = DOMAIN.COMPANY.COM
[realms]
DOMAIN.COMPANY.COM = {
kdc = dc-33.domain.company.com
}
NOTE
Domain must be in ALL CAPS
kinit [email protected]
View the available tickets using kinit. If the kinit was successful, you should see a ticket.
klist
krbtgt/DOMAIN.COMPANY.COM@ DOMAIN.COMPANY.COM.
"telemetry.enableTelemetry": false
Important Notice: This option requires a restart of Azure Data Studio to take effect.
"telemetry.enableCrashReporter": false
Important Notice: This option requires a restart of Azure Data Studio to take effect.
Additional resources
Workspace and User settings
Extend the functionality of Azure Data Studio
9/24/2018 • 2 minutes to read • Edit Online
Extensions in Azure Data Studio provide an easy way to add more functionality to the base Azure Data Studio
installation.
Extensions are provided by the Azure Data Studio team (Microsoft), as well as the 3rd party community (you!). For
details about creating extensions, see Extension authoring.
The SQL Server 2019 extension (preview ) provides preview support for new features and tools shipping in
support of SQL Server 2019 preview. This includes preview support for SQL Server 2019 Big Data Clusters, an
integrated Notebook, Polybase Create External Table wizard for SQL Server, and Azure Resource Explorer.
In Azure Data Studio choose Install Extension from VSIX Package from the File menu and select the
downloaded .vsix file. Choose Yes when prompted to confirm installation and wait for the notification that
installation succeeded.
Select Reload to enable the extension (only required the first time you install an extension).
NOTE
While the External Table functionality is a SQL 2019 feature, the remote SQL Server may be running an earlier version
of SQL Server.
Choose whether you are accessing SQL Server or Oracle on the first page of the wizard and continue.
You will be prompted to create a Database Master Key if one has not already been created (passwords of
insufficient complexity will be blocked).
Create a data source connection and named credential for the remote server.
Choose which objects to map to your new external table.
Choose Generate Script or Create to finish the wizard.
After creation of the external table, it immediately appears in the object tree of the database where it was
created.
Known Issues
If password is not saved when creating a connection, some actions such as submitting Spark Job may not
succeed.
Existing .ipynb notebooks must be upgraded to version 4 or higher to load contents in the viewer.
SQL Server Agent extension (preview)
9/24/2018 • 2 minutes to read • Edit Online
The SQL Server Agent extension (preview ) is an extension for managing and troubleshooting SQL Agent jobs and
configuration. This extension is currently in preview.
Key actions include:
List SQL Server Agent Jobs Configured on a SQL Server
View Job History with job execution results
Basic Job Control to start and stop jobs
Next steps
To learn more about SQL Server Agent, check our documentation.
SQL Server Import extension (preview)
9/24/2018 • 2 minutes to read • Edit Online
The SQL Server Import extension (preview ) converts .txt and .csv files into a SQL table. This wizard utilizes a
Microsoft Research framework known as Program Synthesis using Examples (PROSE ) to intelligently parse the file
with minimal user input. It is a powerful framework for data wrangling, and it is the same technology that powers
Flash Fill in Microsoft Excel
To learn more about the SSMS version of this feature, you can read this article.
3. On this page, you can make changes to column name, data type, whether it is a primary key, or to allow nulls.
You can make as many changes as you like. Click Import Data to proceed.
4. This page gives a summary of the actions chosen. You can also see whether your table inserted successfully
or not.
You can either click Done, Previous if you need to make changes, or Import new file to quickly import
another file.
5. Verify if your table successfully imported by refreshing your target database or running a SELECT query on the
table name.
Next steps
To learn more about the Import Wizard, read the blog post.
To learn more about PROSE, read the documentation.
SQL Server Profiler extension (preview)
9/24/2018 • 2 minutes to read • Edit Online
The SQL Server Profiler extension (preview ) provides a simple SQL Server tracing solution similar to SQL Server
Management Studio (SSMS ) Profiler except built using XEvents. SQL Server Profiler is very easy to use and has
good default values for the most common tracing configurations. The UX is optimized for browsing through
events and viewing the associated Transact-SQL (T-SQL ) text. The SQL Server Profiler for Azure Data Studio also
assumes good default values for collecting T-SQL execution activities with an easy to use UX. This extension is
currently in preview.
Common SQL Profiler use-cases:
Stepping through problem queries to find the cause of the problem.
Finding and diagnosing slow -running queries.
Capturing the series of Transact-SQL statements that lead to a problem.
Monitoring the performance of SQL Server to tune workloads.
Correlating performance counters to diagnose problems.
Start Profiler
1. To start Profiler, first make a connection to a server in the Servers tab.
2. After you make a connection, type Alt + P to launch Profiler.
3. To start Profiler, type Alt + S. You can now start seeing Extended Events.
Next steps
To learn more about Profiler and extended events, see Extended Events.
Getting started with Azure Data Studio extensibility
9/24/2018 • 3 minutes to read • Edit Online
Azure Data Studio has several extensibility mechanisms to customize the user experience and make those
customizations available to the entire user community. The core Azure Data Studio platform is built upon Visual
Studio Code, so most of the Visual Studio Code extensibility APIs are available. Additionally, we've provided
additional extensibility points for data management-specific activities.
Some of the key extensibility points are:
Visual Studio Code extensibility APIs
Azure Data Studio extension authoring tools
Manage Dashboard tab panel contributions
Insights with Actions experiences
Azure Data Studio extensibility APIs
Custom Data Provider APIs
Contribution points
This section covers the various contribution points that are defined in the package.json extension manifest.
The IntelliSense is supported inside azuredatastudio.
Contributes dashboard
Contribute tab, container, insight widget to the dashboard.
dashboard.tabs
Dashboard.tabs creates the tab sections inside the dashboard page. It expects an object or an array of objects.
"dashboard.tabs": [
{
"id": "test-tab1",
"title": "Test 1",
"description": "The test 1 displays a list of widgets.",
"when": "connectionProvider == 'MSSQL' && !mssql:iscloud",
"alwaysShow": true,
"container": {
…
}
}
]
dashboard.containers
Instead of specifying dashboard container inline (inside the dashboard.tab). You can register containers using
dashboard.containers. It accepts an object or an array of the object.
"dashboard.containers": [
{
"id": "innerTab1",
"container": {
…
}
},
{
"id": "innerTab2",
"container": {
…
}
}
]
dashboard.insights
You can register insights using dashboard.insights. This is similar to Tutorial: Build a custom insight widget
"dashboard.insights": {
"id": "my-widget"
"type": {
"count": {
"dataDirection": "vertical",
"dataType": "number",
"legendPosition": "none",
"labelFirstColumn": false,
"columnsAsLabels": false
}
},
"queryFile": "{your file folder}/activeSession.sql"
}
The list of widgets that will be displayed in the container. It’s a flow layout. It accepts the list of widgets.
"container": {
"widgets-container": [
{
"widget": {
"query-data-store-db-insight": {
}
}
},
{
"widget": {
"explorer-widget": {
}
}
}
]
}
2. webview-container
The webview will be displayed in the entire container. It expects webview id to be the same is tab ID
"container": {
"webview-container": null
}
3. grid-container
The list of widgets or webviews that will be displayed in the grid layout
"container": {
"grid-container": [
{
"name": "widget 1",
"widget": {
"explorer-widget": {
}
},
"row":0,
"col":0
},
{
"name": "widget 2",
"widget": {
"tasks-widget": {
"backup",
"restore",
"configureDashboard",
"newQuery"
}
},
"row":0,
"col":1
},
{
"name": "Webview 1",
"webview": {
"id": "google"
},
"row":1,
"col":0,
"colspan":2
},
{
"name": "widget 3",
"widget": {
"explorer-widget": {}
},
"row":0,
"col":3,
"rowspan":2
},
]
4. nav-section
The navigation section will be displayed in the container
"container": {
"nav-section": [
{
"id": "innerTab1",
"title": "inner-tab1",
"icon": {
"light": "./icons/tab1Icon.svg",
"dark": "./icons/tab1Icon_dark.svg"
}
"container": {
…
}
},
{
"id": "innerTab2",
"title": "inner-tab2",
"icon": {
"light": "./icons/tab2Icon.svg",
"dark": "./icons/tab2Icon_dark.svg"
}
"container": {
…
}
}
]
}
Context variables
For general information about context in Visual Studio Code and subsequently Azure Data Studio, see
Extensibility.
In Azure Data Studio, we have specific context around database connections available for extensions.
Dashboard
In dashboard, we provide the following context variables:
connection The full connection profile object for the current connection
(IConnectionProfile)
Extensions in Azure Data Studio provide an easy way to add more functionality to the base Azure Data Studio
installation.
Extensions are provided by the Azure Data Studio team (Microsoft), as well as the 3rd party community (you!).
Author an extension
If you're interested in extending Azure Data Studio, you can create your own extension and publish it to the
extension gallery.
Writing an Extension
Prerequisites
To develop an extension you need Node.js installed and available in your $PATH. Node.js includes npm, the
Node.js Package Manager, which will be used to install the extension generator.
To start your new extension, you can use the Azure Data Studio Extension generator. The Yeoman extension
generator makes it very easy to create simple extension projects. To Launch the generator, type the following in a
command prompt:
npm install -g yo generator-sqlops
yo sqlops
Extensibility References
To learn about Azure Data Studio Extensibility see Extensibility overview. You can also see examples of how to use
the API in existing samples.
Debug an extension
You can debug your new extension using Visual Studio Code extension Azure Data Studio Debug.
Steps
Open your extension with Visual Studio Code
Install Azure Data Studio Debug extension
Press F5 or click the Debug icon and click Start.
A new instance of Azure Data Studio starts in a special mode (Extension Development Host) and this new
instance is now aware of your extension.
vsce package
Publish an extension
To publish your new extension to Azure Data Studio:
1. Add your extension to
https://github.com/Microsoft/azuredatastudio/blob/release/extensions/extensionsGallery.json
2. We currently don't have support to host third party extensions, so instead of downloading the extension, Azure
Data Studio has the option to browse to a download page. To set a download page for your extension, set the
value of asset "Microsoft.AzureDataStudio.DownloadPage".
3. Create a PR against release/extensions branch.
4. Send a review request to the team.
Your extension will be reviewed and added to the extension gallery.
Publishing Extension Updates The process to publish updates is similar to publishing the extension. Please
make sure the version is updated in package.json
Tutorial: Create an Azure Data Studio extension
9/24/2018 • 4 minutes to read • Edit Online
This tutorial demonstrates how to create a new Azure Data Studio extension. The extension creates familiar SSMS
keybindings in Azure Data Studio.
During this tutorial you learn how to:
Create an extension project
Install the extension generator
Create your extension
Test your extension
Package your extension
Publish your extension to the marketplace
Prerequisites
Azure Data Studio is built on the same framework as Visual Studio Code, so extensions for Azure Data Studio are
built using Visual Studio Code. To get started, you need the following components:
Node.js installed and available in your $PATH . Node.js includes npm, the Node.js Package Manager, which is
used to install the extension generator.
Visual Studio Code to debug the extension.
The Azure Data Studio Debug extension.
Ensure sqlops is in your path. For Windows, make sure you choose the Add to Path option in setup.exe. For
Mac or Linux, run the Install 'sqlops' command in PATH option.
SQL Operations Studio Debug extension (optional). This lets you test your extension without needing to
package and install it into Azure Data Studio.
"contributes": {
"keybindings": [
{
"key": "shift+cmd+e",
"command": "runQueryKeyboardAction"
},
{
"key": "ctrl+cmd+e",
"command": "workbench.view.explorer"
},
{
"key": "alt+f1",
"command": "workbench.action.query.shortcut1"
},
{
"key": "shift+alt+enter",
"command": "workbench.action.toggleFullScreen"
},
{
"key": "f8",
"command": "workbench.view.connections"
},
{
"key": "ctrl+m",
"command": "runCurrentQueryWithActualPlanKeyboardAction"
}
]
}
Navigate to the base directory of the extension, and run vsce package . I had to add in a couple of extra lines to
stop the vsce tool from complaining:
"repository": {
"type": "git",
"url": "https://github.com/kevcunnane/ssmskeymap.git"
},
"bugs": {
"url": "https://github.com/kevcunnane/ssmskeymap/issues"
},
Once this was done, my ssmskeymap-0.1.0.vsix file was created and ready to install and share with the world!
Next steps
In this tutorial, you learned how to:
Create an extension project
Install the extension generator
Create your extension
Test your extension
Package your extension
Publish your extension to the marketplace
We hope after reading this you’ll be inspired to build your own extension for Azure Data Studio. We have support
for Dashboard Insights (pretty graphs that run against your SQL Server), a number of SQL -specific APIs, and a
huge existing set of extension points inherited from Visual Studio Code.
If you have an idea but are not sure how to get started, please open an issue or tweet at the team: azuredatastudio.
You can always refer to the Visual Studio Code extension guide because it covers all the existing APIs and patterns.
To learn how to work with T-SQL in Azure Data Studio, complete the T-SQL Editor tutorial:
Use the Transact-SQL editor to create database objects.
Azure Data Studio extensibility APIs
9/24/2018 • 4 minutes to read • Edit Online
Azure Data Studio provides an API that extensions can use to interact with other parts of Azure Data Studio, such
as Object Explorer. These APIs are available from the src/sql/sqlops.d.ts file and are described below.
Connection Management
sqlops.connection
Top-level Functions
getCurrentConnection(): Thenable<sqlops.connection.Connection> Gets the current connection based on the
active editor or Object Explorer selection.
getActiveConnections(): Thenable<sqlops.connection.Connection[]> Gets a list of all the user's connections
that are active. Returns an empty list if there are no such connections.
getCredentials(connectionId: string): Thenable<{ [name: string]: string }> Gets a dictionary containing
the credentials associated with a connection. These would otherwise be returned as part of the options
dictionary under a sqlops.connection.Connection object but get stripped from that object.
Connection
Object Explorer
sqlops.objectexplorer
Top-level Functions
getNode(connectionId: string, nodePath?: string): Thenable<sqlops.objectexplorer.ObjectExplorerNode> Get
an Object Explorer node corresponding to the given connection and path. If no path is given, it returns the
top-level node for the given connection. If there is no node at the given path, it returns undefined . Note:
The nodePath for an object is generated by the SQL Tools Service backend and is difficult to construct by
hand. Future API improvements will allow you to get nodes based on metadata you provide about the node,
such as name, type and schema.
getActiveConnectionNodes(): Thenable<sqlops.objectexplorer.ObjectExplorerNode> Get all active Object
Explorer connection nodes.
findNodes(connectionId: string, type: string, schema: string, name: string, database: string,
parentObjectNames: string[]): Thenable<sqlops.objectexplorer.ObjectExplorerNode[]>
Find all Object Explorer nodes that match the given metadata. The schema , database , and
parentObjectNames arguments should be undefined when they are not applicable. parentObjectNames is a
list of non-database parent objects, from highest to lowest level in Object Explorer, that the desired object is
under. For example, when searching for a column "column1" that belongs to a table "schema1.table1" and
database "database1" with connection ID connectionId , call
findNodes(connectionId, 'Column', undefined, 'column1', 'database1', ['schema1.table1']) . Also see the list
of types that SQL Operations Studio supports by default for this API call.
ObjectExplorerNode
connectionId: string The id of the connection that the node exists under
nodePath: string The path of the node, as used for a call to the getNode function.
nodeType: string A string representing the type of the node
nodeSubType: string A string representing the subtype of the node
nodeStatus: string A string representing the status of the node
label: string The label for the node as it appears in Object Explorer
isLeaf: boolean Whether the node is a leaf node and therefore has no children
metadata: sqlops.ObjectMetadata Metadata describing the object represented by this node
errorMessage: string Message shown if the node is in an error state
isExpanded(): Thenable<boolean> Whether the node is currently expanded in Object Explorer
setExpandedState(expandedState: vscode.TreeItemCollapsibleState): Thenable<void> Set whether the node is
expanded or collapsed. If the state is set to None, the node will not be changed.
setSelected(selected: boolean, clearOtherSelections?: boolean): Thenable<void> Set whether the node is
selected. If clearOtherSelections is true, clear any other selections when making the new selection. If it is
false, leave any existing selections. clearOtherSelections defaults to true when selected is true and false
when selected is false.
getChildren(): Thenable<sqlops.objectexplorer.ObjectExplorerNode[]> Get all the child nodes of this node.
Returns an empty list if there are no children.
getParent(): Thenable<sqlops.objectexplorer.ObjectExplorerNode> Get the parent node of this node. Returns
undefined if there is no parent.
Example Code
private async interactWithOENode(selectedNode: sqlops.objectexplorer.ObjectExplorerNode): Promise<void> {
let choices = ['Expand', 'Collapse', 'Select', 'Select (multi)', 'Deselect', 'Deselect (multi)'];
if (selectedNode.isLeaf) {
choices[0] += ' (is leaf)';
choices[1] += ' (is leaf)';
} else {
let expanded = await selectedNode.isExpanded();
if (expanded) {
choices[0] += ' (is expanded)';
} else {
choices[1] += ' (is collapsed)';
}
}
let parent = await selectedNode.getParent();
if (parent) {
choices.push('Get Parent');
}
let children = await selectedNode.getChildren();
children.forEach(child => choices.push(child.label));
let choice = await vscode.window.showQuickPick(choices);
let nextNode: sqlops.objectexplorer.ObjectExplorerNode = undefined;
if (choice === choices[0]) {
selectedNode.setExpandedState(vscode.TreeItemCollapsibleState.Expanded);
} else if (choice === choices[1]) {
selectedNode.setExpandedState(vscode.TreeItemCollapsibleState.Collapsed);
} else if (choice === choices[2]) {
selectedNode.setSelected(true);
} else if (choice === choices[3]) {
selectedNode.setSelected(true, false);
} else if (choice === choices[4]) {
selectedNode.setSelected(false);
} else if (choice === choices[5]) {
selectedNode.setSelected(false, true);
} else if (choice === 'Get Parent') {
nextNode = parent;
} else {
let childNode = children.find(child => child.label === choice);
nextNode = childNode;
}
if (nextNode) {
let updatedNode = await sqlops.objectexplorer.getNode(nextNode.connectionId, nextNode.nodePath);
this.interactWithOENode(updatedNode);
}
}
vscode.commands.registerCommand('mssql.objectexplorer.interact', () => {
sqlops.objectexplorer.getActiveConnectionNodes().then(activeConnections => {
vscode.window.showQuickPick(activeConnections.map(connection => connection.label + ' ' +
connection.connectionId)).then(selection => {
let selectedNode = activeConnections.find(connection => connection.label + ' ' +
connection.connectionId === selection);
this.interactWithOENode(selectedNode);
});
});
});
Proposed APIs
We have added proposed APIs to allow extensions to display custom UI in dialogs, wizards, and document tabs,
among other capabilities. See the proposed API types file for more documentation, though be aware that these
APIs are subject to change at any time. Examples of how to use some of these APIs can be found in the
"sqlservices" sample extension.
Transact-SQL Reference (Database Engine)
9/24/2018 • 2 minutes to read • Edit Online
APPLIES TO: SQL Server (starting with 2008) Azure SQL Database Azure SQL Data Warehouse
Parallel Data Warehouse
This topic gives the basics about how to find and use the Microsoft Transact-SQL (T-SQL ) reference topics. T-SQL
is central to using Microsoft SQL products and services. All tools and applications that communicate with a SQL
database do so by sending T-SQL commands.
Next steps
Now that you understand how to find the T-SQL reference topics, you are ready to:
Work through a short tutorial about how to write T-SQL, see Tutorial: Writing Transact-SQL Statements.
View the Transact-SQL Syntax Conventions (Transact-SQL ).
Azure Data Studio FAQ
9/24/2018 • 7 minutes to read • Edit Online
Now that there is Azure Data Studio, does Microsoft plan to deprecate
SSMS and SSDT?
No. Investments in flagship Windows tools (SSMS, SSDT, PowerShell) will continue in addition to the next
generation of multi-OS and multi-DB CLI and GUI tools. The goal is to offer customers the choice of using the
tools they want on the platforms of their choice for their scenarios. Azure Data Studio is more tightly focused on
the experiences around query editing and data development, which research has shown is the most heavily used
capability in SQL Server Management Studio by an order of magnitude. Additional high-value administrative
features such as backup, restore, agent job management, and server profiling are also available as extensions in
Azure Data Studio. Azure Data Studio is also cross-platform, allowing users to work on their platform of choice.
However, SQL Server Management Studio still offers the broadest range of administrative functions and remains
the flagship tool for platform management tasks.
Feature Comparison
Shell features
FEATURE AZURE DATA STUDIO SSMS
Dashboard Yes
Extensions Yes
Theming Yes
Query Editor
FEATURE AZURE DATA STUDIO SSMS
SQLCMD Yes
macOS Yes
Linux Yes
Data Engineering
FEATURE AZURE DATA STUDIO SSMS
Notebooks Preview
Database Administration
FEATURE AZURE DATA STUDIO SSMS
Always On Yes
PolyBase Yes
Replication Yes
I understand Azure Data Studio and the mssql extension for VS Code
are powered by a new tools service that uses SMO APIs under the
covers. Is SMO available on Linux and macOS?
The SMO APIs are not yet available on Linux or macOS in a consumable way. We ported over a subset of the
SMO APIs to .NET Core that we needed for Azure Data Studio and we plan to expand as part of the roadmap. The
SQL Tools Service is on GitHub: https://github.com/Microsoft/sqltoolsservice.
Does Azure Data Studio integrate with Azure SQL Data Warehouse?
Yes. Azure Data Studio support for Azure SQL Data Warehouse is currently in preview, together with Azure SQL
Database Managed Instance, and SQL Server 2019 Big Data.
Why is Azure Data Studio important for the new version of SQL Server?
As SQL Server extends its capabilities into the Big Data space, it needs new tooling to support those use cases. For
that reason, Azure Data Studio is today shipping a new preview experience of support for SQL Server Big Data,
including the first ever notebook experience in the SQL Server toolset and a new Create External Table wizard that
makes accessing data from remote SQL Server and Oracle instances easy and fast.