Microsoft SQL Server 2019: Technical White Paper
Microsoft SQL Server 2019: Technical White Paper
Microsoft SQL Server 2019: Technical White Paper
This white paper is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED, OR STATUTORY, AS TO THE
INFORMATION IN THIS DOCUMENT.
Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this
document may be reproduced, stored in, or introduced into a retrieval system, or transmitted in any form or by any means (electronic,
mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of Microsoft Corporation.
Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this
document. Except as expressly provided in any written license agreement from Microsoft, the furnishing of this document does not give you
any license to these patents, trademarks, copyrights, or other intellectual property. Information subject to change at any time without prior
notice.
Microsoft, Active Directory, Azure, Bing, Excel, Power BI, SharePoint, Silverlight, SQL Server, Visual Studio, Windows, and Windows Server are
trademarks of the Microsoft group of companies.
Containers ........................................................................................................................................................................................................15
Machine learning...........................................................................................................................................................................................15
Building on SQL Server on Linux in Docker containers, Apache Spark and the Hadoop ecosystem, and the rapidly-
forming industry consensus on Kubernetes as a container orchestrator, with SQL Server 2019 Big Data Clusters
you can deploy scalable clusters of SQL Server containers to read, write, and process big data from Transact-SQL,
allowing you to easily combine your high-value relational data with high-volume big data with a single query.
The SQL Server 2019 database engine supports an even wider choice of platform and programming language—
including support for third-party language runtimes—and bringing SQL Server on Linux closer to feature parity
with SQL Server on Windows.
SQL Server remains the only commercial database with AI built in, and now supports even more machine learning
scenarios. SQL Server Machine Learning Services gives you the ability to do end to end machine learning in the
database without moving data. You can train the models using open source R or Python, and Microsoft’s scalable
algorithms. Once trained, making machine learning scripts and models operational is as simple as embedding
them in Transact-SQL scripts. Any application connecting to SQL Server can take advantage of the predictions and
intelligence from these models by simply calling a stored procedure.
SQL Server 2019 builds on previous versions of SQL Server, which are industry leaders in performance and
security; SQL Server has been a leader in TPC-E and TPC-H benchmarks for the last five years, and the least
vulnerable database during the last eight years. It offers better performance than ever before, and new features to
help manage data security and compliance.
Please note: this document describes the features available in the first public preview of SQL Server 2019; CTP 2.0.
More features will be added in later releases.
Data virtualization
Recognizing that different storage technologies are more appropriate for different types of data; a modern
enterprise is likely to have data stored in a mixture of relational and non-relational data stores—often from several
different vendors. A challenge for developers, data scientists, and business analysts is that to extract business
value from this data, they typically need to combine data from disparate sources; they typically do this by bringing
all the relevant data from the source systems together on a single platform.
In traditional business intelligence systems, copies of data are created and loaded into a reporting platform with
extract-transform-load (ETL) processes; reporting and analysis is carried out on the copies. Whilst enabling
enterprises to extract business value from their data, ETL processes have several common issues:
An alternative to ETL is data virtualization. Data virtualization integrates data from disparate sources, locations and
formats, without replicating or moving the data, to create a single "virtual" data layer that delivers unified data
services to support multiple applications and users. The virtual data layer—sometimes referred to as a data hub or
data lake—allows users to query data from many sources through a consistent interface. Users’ access to sensitive
data sets can be controlled from a single location, and the delays inherent to ETL need not apply; data sets can be
up to date.
1
3rd Platform Information Management Requirements Survey, IDC, October, 2016, n=502
• Performance—SQL Server owns the top TPC-E3 performance benchmarks for transaction processing, the top
TPC-H4 performance benchmarks for data warehousing—at 1,000 GB, 10,000 GB, and 30,000 GB—and the top
performance benchmarks with leading business applications.
• Security—According to the National Institute of Standards and Technology (NIST) public security board, SQL
Server continues to have the lowest number of reported security vulnerabilities across the major database
vendors (NIST, 2010-2017).
SQL Server 2019 continues the evolution of SQL Server, bringing new capabilities to the modern data ecosystem
to better support and enhance data management and data-driven applications.
• Reason over data anywhere—including better integration with big data systems, and new connectors for
data virtualization.
• Choice of language and platform—including more container scenarios, more supported platforms, and
greater extensibility.
• Industry leading performance and security—including better performance, extensions to intelligent query
processing, and additional features to support GDPR compliance.
• The only commercial database with AI built in—built-in machine learning is now supported in more
scenarios, including machine learning in SQL Server on Linux, and support for machine learning in failover
cluster instances.
• Enhancing SQL Server on Linux—bringing SQL Server on Linux closer to feature-parity with SQL Server on
Windows, including support for transactional replication and distributed transactions.
2
Gartner has rated Microsoft as a leader with the most complete vision and highest ability to execute of any operational database
management system for three consecutive years (2015, 2016, and 2017). Gartner does not endorse any vendor, product or service depicted in its
research publications, and does not advise technology users to select only those vendors with the highest ratings or other designation. Gartner
research publications consist of the opinions of Gartner's research organization and should not be construed as statements of fact. Gartner
disclaims all warranties, expressed or implied, with respect to this research, including any warranties of merchantability or fitness for a particular
purpose.
3
TPC-E Top Ten Performance Results, TPC.org (link)
4
TPC-H - Top Ten Performance Results - Non-Clustered, TPC.org (link)
SQL Server 2019 extends capabilities of PolyBase with new connectors; you can now create external tables that link
to a variety of data stores, including SQL Server, Oracle, Teradata, MongoDB, or any data source with an ODBC
driver.
Once you have created external tables in SQL Server, you can use Active Directory to control access to data
sources, granting access to external tables to Active Directory users and groups.
You can further increase the performance and capacity of PolyBase with scale-out of SQL Server instances; many
SQL Server instances can be added to a PolyBase group, under the control of a group head node. You issue
PolyBase queries to the head node, which distributes the workload across the PolyBase group’s compute
instances; this enables parallel ingestion and processing of external data.
As you add more data sources and data volumes increase, you can scale out the PolyBase group by adding more
compute instances to maintain consistent performance. As your data virtualization workloads change you can add
and remove compute instances on-the-fly within seconds.
With enhanced PolyBase, you can bring together and secure many disparate data sources for reporting and
analysis inside SQL Server, without the need to develop and run ETL processes.
• Data virtualization—Combine data from many sources without moving or replicating it. Scale out compute
and caching to boost performance.
• Managed SQL Server, Spark and data lake—Store high volume data in a data lake and access it easily using
either SQL or Spark. Management services, admin portal, and integrated security make it all easy to manage.
• Complete AI platform—Easily feed integrated data from many sources to your model training. Ingest and prep
data, and then train, store, and operationalize your models all in one system.
The highest value enterprise data has long since been stored in a relational database like SQL Server, but some
interesting new types of data are being collected and primarily stored in HDFS—for example, data from Internet of
Things (IoT) devices. The true value of that data is locked up in big data systems and can realistically only be
analyzed by big data engineers and data scientists. To get the value out of big data, data scientists typically export
high-value data out of the enterprise database and import it into Hadoop, so that they can join it with the new
data streams. Without the context that the dimensional high-value data stored in the enterprise database
provides, high-volume big data doesn’t have much value; big data streams need to be joined to data like
customers, accounts, parts, products, marketing campaigns, and so on. SQL Server Big Data Clusters make it easy
for big data sets to be joined to the dimensional and fact data typically stored in the enterprise database and
make it easy for people and apps that use SQL Server to query big data. The value of the big data greatly
increases when it is not just in the hands of the data scientists and big data engineers but is also included in
With SQL Server Big Data Clusters , existing customers can do more with their enterprise data lakes. SQL
developers and analysts can:
SQL Server Big Data Clusters take the form of a compute cluster of containers running SQL Server and big data
services. Tasks can be parallelized across different SQL Server instances, whether they are running in the compute,
storage or data pools, or Spark executors running inside containers in the cluster.
Cluster activities are marshalled by a SQL Server master instance; tasks are parallelized across Docker containers
running on a scalable group of nodes that make up a compute tier. Big Data Clusters are built on SQL Server on
Linux in Docker containers in concert with open-source container management and big data tools, including
Kubernetes, HDFS, and Spark.
Also included are several features to improve the performance of columnstore indexes, such as automated
columnstore index maintenance, better columnstore metadata memory management, a low-memory load path
for columnstore tables, and improved performance for bulk loading to columnstore indexes. The server startup
process has been made faster for databases that use in-memory columnstore tables for hybrid transactional and
analytical processing (HTAP).
SQL Server 2019 also includes a database-scoped setting for online and resumable DDL operations, as well as
support for resumable online index creation.
High availability
SQL Server 2019 adds support for even more high availability scenarios and platforms, including:
Enable high availability configurations for SQL Server running in containers—SQL Server 2019 enables
customers to configure highly-available systems with Always On Availability Groups using Kubernetes as an
orchestration layer.
Up to five synchronous replica pairs – SQL Server 2019 increases the limit for synchronous replica pairs from
three (in SQL Server 2017) to five. Users can now configure up to five synchronous replicas (1 Primary and up to 4
secondary replicas) with automatic failover between these replicas.
• In SQL Server 2017, an administrator must configure the Availability Group listener (and the corresponding
cluster resource) to direct SQL Server traffic to the primary replica to ensure that clients are transparently
reconnected to the active primary node upon failover; however, there are cluster technologies that support
SQL Server Availability Groups that do not offer a listener-like capability.
• In a multi-subnet configuration such as Azure or multi-subnet floating IP address in an availability group using
Pacemaker, configurations become complex, prone to errors and difficult to troubleshoot due to multiple
components involved.
• When the availability group is configured for read scale-out or DR and cluster type is NONE, there is no
straightforward mechanism to ensure transparent reconnection upon manual failover.
High availability with remote storage on Kubernetes—an option for high availability is to use a container
orchestrator such as Kubernetes, and deploy SQL Server in a configuration that is like a shared disk failover cluster
instance but uses the container orchestrator capabilities instead of a failover cluster. This deployment model does
not require specific enhancements from SQL Server perspective, and is not new capability in SQL Server 2019—a
tutorial is available on how to implement this configuration using SQL Server 2017 5—but SQL Server 2019 enables
enhanced instance health check monitoring using the same operator pattern as Availability Group health checks.
SQL data discovery and classification—added in SQL Server Management Studio (SSMS) 17.5, SQL Data
Discovery and Classification allows you to classify columns in your database that contain sensitive information.
You can classify columns by the type of information they contain—names, addresses, social security numbers, and
so on—and by the level of sensitivity of the data in the column—including levels such as public, general,
confidential, and confidential. You can easily generate reports from the classification you have applied to enable
5
https://docs.microsoft.com/en-us/sql/linux/tutorial-sql-server-containers-kubernetes?view=sql-server-linux-2017
Always Encrypted with Secure Enclaves—Introduced in SQL Server 2016, Always Encrypted is an encryption
technology that protects the confidentiality of sensitive data from malware and high-privileged, but unauthorized
users of SQL Server, including DBAs, machine admins and cloud admins. Sensitive data is never visible in plaintext
to those users. If a DBA, who does not have access to the keys, queries the encrypted database columns, the query
will either fail or return encrypted data, depending on the database connection properties. If a user or a process
with machine admin privileges scans the memory of the SQL Server process, they will not be able to see the data
in plaintext.
In SQL Server versions prior to SQL Server 2019, Always Encrypted achieves the above security benefits by
encrypting data on the client side and never allowing the data or the corresponding cryptographic keys to appear
in plaintext inside the SQL Server process. As a result, the functionality on encrypted database columns inside the
database is severely restricted: the only operation the SQL Server Engine can perform on encrypted data is
equality comparison (and it is only available with deterministic encryption). All other operations, including
cryptographic operations, or rich computations, such as pattern matching, are not supported inside the database
and must be carried out in the application layer.
The secure enclave technology, introduced in SQL Server 2019, addresses the limitations of Always Encrypted by
allowing computations on plaintext data within a secure enclave inside the SQL Server process. A secure enclave is
a protected region of memory within the SQL Server process, and it acts as a trusted execution environment for
processing sensitive data inside the SQL Server Engine. A secure enclave extends client applications’ trust
boundary to the server side. While it is contained by the SQL Server environment, the secure enclave is not
accessible to SQL Server, the operating system, or to the database or system administrators.
In SQL Server 2019, Always Encrypted with secure enclaves uses Virtualization-Based security (VBS) secure
memory enclaves (also known as Virtual Secure Mode, or VSM, enclaves) in Windows Server 2019 and Windows
10 (build 17704 or later).
Certificate Management functionality in SQL Server Configuration Manager—SSL/TLS certificates are widely
used to secure access to SQL Server. With earlier versions of SQL Server, organizations with large SQL Server
estates have needed to expend considerable effort to maintain their SQL Server certificate infrastructure—often
through developing scripts and running manual commands. With SQL Server 2019, certificate management is
integrated into the SQL Server Configuration Manager UI, simplifying common tasks such as:
The user executing these tasks requires administration privileges in all the affected nodes.
UTF-8 support
SQL Server 2019 includes full support for the widely used UTF-8 character encoding as an import or export
encoding, or as database-level or column-level collation for text data.
UTF-8 is allowed in the CHAR and VARCHAR datatypes, and is enabled when creating or changing an object’s
collation, to a collation with the “UTF8” suffix, such as LATIN1_GENERAL_100_CI_AS_SC to
LATIN1_GENERAL_100_CI_AS_SC_UTF8. UTF-8 is only available to windows collations that support supplementary
characters, as introduced in SQL Server 2012. Note that NCHAR and NVARCHAR allow UTF-16 encoding only, and
remain unchanged.
Significant storage savings can also be achieved, depending on the character set in use. For example, changing an
existing column data type from NCHAR(10) using UTF-16 to CHAR(10) using an UTF-8 enabled collation, translates
into nearly 50% reduction in storage requirements. This is because NCHAR(10) requires 22 bytes for storage,
whereas CHAR(10) requires 12 bytes for the same Unicode string.
Replication—in SQL Server 2019, SQL Server on Linux instances can participate in transactional, merge, and
snapshot replication topologies in the publisher, distributor, or subscriber roles.
Distributed transactions—SQL Server on Linux instances can now initiate and participate in distributed
transactions. This is achieved with a Linux version of the Microsoft Distributed Transaction Coordinator (MSDTC)
that runs within the SQL Server process to help SQL Server participate in distributed transactions. With access to
MSDTC, SQL Server on Linux can participate in distributed transactions with other third-party transaction
coordinators, or if you have specific processing needs there is support for you to develop your own.
Containers
New master container registry—the primary publishing location for SQL Server container images is a new
container registry—the Microsoft Container Registry at mcr.microsoft.com. Microsoft Container Registry is the
official container registry for the distribution of Microsoft product containers. In addition, certified RHEL-based
images are now published.
Machine learning
There are many advantages to bringing the machine learning compute to the data instead of moving data out to
compute. These advantages include the elimination of data movement, ease of deployment, improved security
and better scale and performance. These advantages also make SQL Server a powerful end to end machine
learning platform. Enhancements to Machine Learning in SQL Server 2019 CTP 2.0 include:
Machine Learning on Linux—SQL Server 2019 Machine Learning Services (In-Database) is now supported on
Linux.
Input data partitioning—Without changing your R or Python scripts, you can process data at table partition
level. This allows you to train a model for each table partition and parallelize model training per partition.
Failover cluster support—You can install SQL Server 2019 Machine Learning Services (In-Database) on a
Windows failover cluster to meet your requirements for redundancy and uptime in the event your primary server
fails over.
Java language extension—In addition to R and Python runtimes, SQL Server 2019 adds a Java language
extension. This will allow you to call a pre-compiled Java program and securely execute Java code on SQL Server.
This reduces the need to move data and improves application performance by bringing your workloads closer to
your data. You specify the Java runtime you want to use, by installing the JDK distribution and Java version of your
choice.
SQL Graph
Introduced in SQL Server 2017, SQL Graph provides graph database capabilities to SQL Server, allowing easier
modelling of data sets with many—often complex—relationships as a set of nodes (or vertexes) and edges (or
Edge constraints—In the first release of SQL Graph, an edge could connect any node to any other node in the
database. Edge constraints help users put some restrictions on this behavior. Using the new CONNECTION
constraint, you can now limit the type of nodes a given edge type can connect. This helps users enforce special
semantics on the edge table and also maintain data integrity in their graph database.
MATCH support Merge DML—The MERGE statement performs insert, update, or delete operations on a target
table based on the results of a join with a source table. For example, you can synchronize two tables by inserting,
updating, or deleting rows in a target table based on differences between the target table and the source table.
Using MATCH predicates in a MERGE statement is now supported in SQL Server. That is, it is now possible to
merge your current graph data (node or edge tables) with new data using the MATCH predicates to specify graph
relationships in a single statement, instead of separate INSERT/UPDATE/DELETE statements.
Row mode memory grant feedback—Addressing repeating workloads, memory grant feedback recalculates the
actual memory required for a query and then updates the grant value for the cached plan. When an identical
query statement is executed, the query uses the revised memory grant size, reducing excessive memory grants
that impact concurrency and fixing underestimated memory grants that cause expensive spills to disk. In SQL
Server 2017, memory grant feedback was only available in batch mode—for tables with a columnstore index; in
SQL Server 2019, memory grant feedback is available in both batch mode and row mode.
Table variable deferred compilation—to improve the performance of workloads that use table variables, the
SQL Server 2019 database engine delays the first compilation of statements that reference one or more table
Approximate COUNT DISTINCT—in some data-warehousing and big data scenarios, the cost of aggregating a
distinct count of the values in a column on a very large data set can be prohibitive, especially when the precision
of the answer is not critical. SQL Server 2019 provides an APPROX_COUNT_DISTINCT aggregate operator for these
scenarios, giving the benefit of high performance and a low memory footprint.
Lightweight query profiling infrastructure enabled by default—the lightweight query profiling infrastructure
offers a query execution statistics collection mechanism with a maximum overhead of 2% CPU, compared with an
overhead of up to 75% CPU for the legacy collection mechanism. The lightweight query profiling infrastructure
was introduced in SQL Server 2016 SP1, but it was not enabled by default; database administrators could enable it
with a trace flag. In SQL Server 2019, the lightweight query profiling infrastructure is enabled by default.
Additional support to troubleshoot columnstore indexes—columnstore statistics are now included in DBCC
CLONEDATABASE to enable performance troubleshooting without the need to manual capture the statistics
information. The ability to see the large space savings possible when using the highly efficient compressed
columnstore indexes has been added to sp_estimate_data_compression_savings. In SQL Server 2019 both
COLUMNSTORE and COLUMNSTORE_ARCHIVE have been added to allow you to estimate the space savings if
either of these indexes are used on a table.
Enhanced database level health detection for Availability Group databases—database level health detection
for Availability Group databases has been improved to detect additional errors conditions related to the
availability of a database and initiate a failover (or restart) of the Availability Group resource if required.
Reporting Services
SQL Server Reporting Services (SSRS) provides a modern, on-premises solution for creating, deploying, and
managing reports within your organization. Since SQL Server 2016, Reporting Services brings modern design to
enterprise reporting. You can create mobile reports optimized for smartphones and tablets to bring the power of
data to more users in the organization, in addition to creating modern paginated reports. The native Power BI
apps for mobile devices for Windows 10, iOS, Android, and HTML5 allow easy access to mobile reports and
dashboards both in online and offline mode.
This server-based reporting platform includes a complete set of tools to create, manage, and deliver reports and
APIs that enable developers to integrate or extend data and report processing in custom applications. These tools
work within the Microsoft Visual Studio environment and are fully integrated with SQL Server tools and
components. Report Builder enables report authors to design paginated reports and publish them to a report
server. SQL Server Mobile Report Publisher enables report authors to design mobile reports and publish them to a
report server. SQL Server Data Tools (SSDT) integrates into Visual Studio 2017 and enables developers to design
paginated reports within the Visual Studio integrated development environment and take advantage of projects,
source control, build, and deployment.
SSRS provides a responsive web portal built on HTML5 that enables users to browse, search, view, and manage
reports (both paginated and mobile) using a modern browser to access all your reports in one place. A scheduling
and delivery agent refreshes data sets and executes reports on a schedule, and delivers paginated reports to users
via email and other means. The report server database, built on the SQL Server Database Engine, stores and
manages the catalog of content, including data sources, data sets, paginated reports, mobile reports, and KPIs.
The database can be on the report server or on a different server running SQL Server.
Reporting Services supports both traditional paginated reports, in addition to mobile reports and dashboards.
For more information about the capabilities of Reporting Services, see Reporting Services. Note that Reporting
Services is currently a Windows-only feature.
With Power BI Desktop, users can self-serve to design reports, dashboards, and data models that connect to a
broad range of data sources. For more information about the capabilities of Power BI Desktop, see the Power BI
Desktop product page.
With the Power BI service, users can store and access Power BI reports from the Microsoft public cloud, using a
browser or mobile devices. The Power BI Premium service allows users to share and collaborate on Power BI
reports. For more information about the capabilities of Power BI, see the Power BI product page.
For more information about the capabilities of Power BI Report Server, see the Power BI Report Server product
page. Note that Power BI Report Server is currently a Windows-only feature.
Analysis Services
SQL Server Analysis Services (SSAS) boasts modern data connectivity and transformation capabilities, with support
for Power BI data sources. SSAS also supports some advanced BI modeling capabilities, such as data mashup
transformations, drill-throughs, and ragged hierarchies. SSAS can be configured to work with in-memory tabular
models, or traditional multidimensional OLAP cubes.
SQL Server Analysis Services provides several approaches for creating a business intelligence semantic model:
Tabular, Multidimensional (OLAP cubes), and Power Pivot for SharePoint.
Having more than one approach enables a modeling experience tailored to different business and user
requirements. Multidimensional is a mature technology built on open standards—embraced by numerous vendors
of BI software—but it can be hard to master. Tabular offers a relational modeling approach that many developers
find more intuitive. Power Pivot is even simpler, offering visual data modeling in Excel, with server support
provided via SharePoint. All models are deployed as databases that run on an Analysis Services instance, accessed
by client tools using a single set of data providers, and visualized in interactive and static reports via Excel,
Reporting Services, Power BI, and BI tools from other vendors.
Tabular and multidimensional solutions are built using SQL Server Data Tools (SSDT) and are intended for
corporate BI projects that run on a standalone Analysis Services instance on-premises, and for tabular models, an
Azure Analysis Services server in the cloud. Both solutions yield high performance analytical databases that
integrate easily with BI clients.
Tabular and multidimensional models use imported data from external sources. The amount and type of data you
need to import can be a primary consideration when deciding which model type best fits your data. Both tabular
and multidimensional solutions use data compression that reduces the size of the Analysis Services database
relative to the data warehouse from which you are importing data. Because actual compression will vary based on
the characteristics of the underlying data, there is no way to know precisely how much disk and memory will be
required by a solution after data is processed and used in queries.
Tabular databases run either in-memory or in DirectQuery mode that offloads query execution to an external
database. For tabular in-memory analytics, the database is stored entirely in memory, which means you must have
sufficient memory to not only load all the data, but also to create additional data structures to support queries.
DirectQuery, revamped in SQL Server 2016, has fewer restrictions than before, and better performance. Taking
advantage of the backend relational database for storage and query execution makes building a large-scale
Tabular model more feasible than was previously possible. For multidimensional offloading, data storage and
query execution are available via ROLAP. On a query server, rowsets can be cached, and stale ones paged out.
Note: SQL Server 2019 CTP 2.0 does not introduce new features for Business Intelligence.
Integration Services includes a rich set of built-in tasks and transformations; tools for constructing packages; and
the Integration Services service for running and managing packages. You can use the graphical Integration
Services tools to create solutions without writing a single line of code; or you can program the extensive
Integration Services object model to create packages programmatically and code custom tasks and other package
objects.
Improvements in SQL Server 2019 to scaling out SSIS packages can be installed side-by-side with the SQL Server
2017 version. If you prefer you can also choose to upgrade scale out management, masters, and workers in place.
For more information about the capabilities and features of SSIS, see SQL Server Integration Services. Note that
the SSIS engine runs on Windows and Linux.
In Master Data Services, the model is the highest-level container in the structure of your master data. You create a
model to manage groups of similar data—for example, to manage online product data. A model contains one or
more entities, and entities contain members that are the data records. For example, your online product model
might contain entities such as product, color, and style. The color entity might contain members for the colors red,
silver, and black.
For more information about the capabilities of Data Quality Services, see Master Data Services Overview. Note that
Master Data Services is currently a Windows-only feature.
SQL Server Management Studio is the free Windows-only desktop application for administering and querying SQL
Server instances running on any platform, Azure SQL Data Warehouse, and Azure SQL Database instances. Since
2016, SQL Server Management Studio has its own release cycle independent of SQL Server, allowing more
frequent updates. Find out more about SQL Server Management Studio on Microsoft Docs.
Visual Studio Code is a free, lightweight, extensible cross-platform IDE. With the mssql extension, you can use
Visual Studio Code to execute Transact-SQL scripts on SQL Server instances running on any platform, Azure SQL
Data Warehouse, and Azure SQL Database instances. Find out more about Visual Studio Code at
https://code.visualstudio.com/. Find out more about working with the mssql Visual Studio Code extension on
Microsoft Docs.
Several command-line/shell tools are available for interacting with SQL Server, including:
• sqlcmd—used to execute Transact-SQL commands from the command-line, either dynamically or from a file.
• bcp—used to bulk-import and bulk-export data to SQL Server instances.
• sqlpackage—used to script databases from and deploy databases to dacpac packages, to simplify database
deployment and migration.
Cross-platform versions of sqlcmd and bcp are already available. A cross-platform release of sqlpackage is
currently in preview.
mssql-cli is a new, cross-platform, command-line/shell tool that aims to provide a more user-friendly shell
environment for interacting with SQL Server; mssql-cli improves upon sqlcmd by adding modern features such as
syntax highlighting, auto-completion, and adaptive result-set formatting. mssql-cli is built on the open-source
dbcli project and is dependent on the Python language and the Python package management tool pip. Find out
more about mssql-cli at the project page on GitHub.
SQL Server Data Tools is a workload customization for Visual Studio that you use to develop, test, and deploy SQL
Server database engine, Integration Services, Analysis Services, and Reporting Services tabular objects. SQL Server
Data Tools is compatible with all versions of Visual Studio 2017, including Community Edition. Find out more
about SQL Server data tools on Microsoft Docs.
7
Azure Data Studio was released in preview under the name SQL Operations Studio.
Calls to action
For more information about SQL Server 2019, see: aka.ms/ss19