What's new for SQL Server 2017 on Linux

THIS TOPIC APPLIES TO: noSQL Server on WindowsyesSQL Server on LinuxnoAzure SQL DatabasenoAzure SQL Data WarehousenoParallel Data Warehouse

This topic describes what's new for SQL Server 2017 running on Linux.


The General Availaiblity (GA) release contains the following improvements and fixes:

  • Database files can now be hosted on NFS. This fixes problems with NFS shared disk scenarios, mounting remote storage for container platforms, and mounting folders for Docker for Windows.
  • Other miscellaneous bug fixes and improvements.


The RC2 release contains miscellaneous bug fixes and improvements.


The RC1 release contains the following improvements and fixes:

  • Enabled Transparent Layer Security (TLS) for encrypted connections. For more information, see Encrypting Connections to SQL Server on Linux.
  • Enabled Active Directory Authentication.
  • Enabled DB Mail.
  • Added IPV6 support.
  • Added environment variables for initial SQL Server setup. For more information, see Configure SQL Server settings with environment variables on Linux.
  • Removed sqlpackage from installed binaries. SqlPackage can still be run against Linux remotely from Windows.
  • Shared disk cluster resource agent sets the resource name like it does on a Windows SQL Server failover cluster instance. @@ServerName returns the SQL Server shared disk cluster resource name; prior to RC1 it returned the name of the cluster node that owned the resource.

CTP 2.1

The CTP 2.1 release contains the following improvements and fixes:

  • Added environment variables to configure the SQL Server service.
  • mssql-conf now requires two-part naming convention for settings.
  • The mssql-scripter tool. This utility enables developers, DBAs, and sysadmins to generate CREATE and INSERT Transact-SQL scripts from database objects in SQL Server, Azure SQL DB, and Azure SQL DW databases from the command line.
  • The DBFS tool. This is an open-source tool that enables DBAs and sysadmins to monitor SQL Server more easily by exposing live data from SQL Server Dynamic Management Views (DMVs) as virtual files in a virtual directory on Linux operating systems.
  • SQL Server Integration Services (SSIS) now runs on Linux. In addition, there's a new package that lets you run SSIS packages on Linux from the commandline. For more info, see the blog post announcing SSIS support for Linux. With SSIS on Linux CTP 2.1 Refresh, your SSIS packages can use ODBC connections on Linux. For more info, see the blog post announcing ODBC support on Linux.

CTP 2.0

The CTP 2.0 release contains the following improvements and fixes:

  • Added Log Shipping functionality for SQL Server Agent.
  • Localized messages of mssql-conf.
  • Linux path formatting are now compatible throughout the SQL Server Engine. But support for "C:\" prefixed paths will continue.
  • Enabled DMV sys.dm_os_file_exists.
  • Enabled DMV sys.fn_trace_gettable.
  • Added CLR Strict Security mode.
  • SQL Graph.
  • Resumable Online Index Rebuilds.
  • Adaptive Query Processing.
  • Added UTF-8 encoding for system files, including log files.
  • Fixed In-memory databases location limitation.
  • Add new cluster type CLUSTER_TYPE = EXTERNAL for configuring an availability group for high availability.
  • Fix Availability Group Listener for read-only routing.
  • Production support for Early Adoption Program (EAP) customers. Sign up here.

CTP 1.4

The CTP 1.4 release contains the following improvements and fixes:

  • Enabled the SQL Server Agent.
    • Enabled T-SQL Jobs functionality.
  • Fixed timezone bugs:
    • Timezone support for Asia/Kolkata.
    • Fixed GETDATE() function.
  • Network Async I/0 Improvements:
    • Significant improvements to In-Memory OLTP workload performance.
  • Docker image now includes SQL Server command-line utilities. (sqlcmd/bcp).
  • Enabled Virtual Device Interface (VDI) support for backups.
  • Location of TempDB can now be modified after installation using ALTER DATABASE.

CTP 1.3

The CTP 1.3 release contains the following improvements and fixes:

CTP 1.2

The CTP 1.2 release contains the following improvements and fixes:

  • Support for SUSE Linux Enterprise Server v12 SP2.
  • Bug fixes for core engine and stability improvements.
  • Docker image:
    • Fixed issue #1 by adding Python to the image.
    • Removed /opt/mssql/data as the default volume.
  • Updated to .NET 4.6.2.

CTP 1.1

The CTP 1.1 release contains the following improvements and fixes:

  • Support for Red Hat Enterprise Linux version 7.3.
  • Support for Ubuntu 16.10.
  • Upgraded Docker OS layer to Ubuntu 16.04.
  • Fixed telemetry issues in Docker image.
  • Fixed SQL Server Setup script related bugs.
  • Enhanced performance for natively compiled T-SQL modules, including:
    • OPENJSON, FOR JSON, JSON built-ins.
    • Computed Columns (Only indexes are allowed on persisted computed columns, but not on non-persisted computed columns for in-memory tables).
    • CROSS APPLY operations.
  • New language features:
    • String functions: TRIM, CONCAT_WS, TRANSLATE and STRING_AGG with support for WITHIN GROUP (ORDER BY).
    • BULK IMPORT now supports CSV format and Azure Blob Storage as File Source.

Under compatibility mode 140:

  • Improved the performance of updates to non-clustered columnstore indexes in the case when the row is in the delta store. Changed from delete and insert operations to update. Also changed the plan shape used from wide to narrow.
  • Batch mode queries now support "memory grant feedback loops". This will improve concurrency and throughput on systems running repeated queries that use batch mode. This can allow more queries to run on systems that are otherwise blocking on memory before starting queries.
  • Improved performance in batch mode parallelism by ignoring trivial plan for batch mode plans to allow for parallel plans to be picked instead against columnstores.

Improvements from Service Pack 1 in this CTP1.1 release:

  • Database cloning for CLR, Filestream/Filetable, In-memory and Query Store objects.
  • CREATE or ALTER operators for programmability objects.
  • New USE HINT query option to provide hints for the query processor. Learn more here: Query Hints.
  • SQL service account can now programmatically identify Enable Lock Pages in Memory and Instant File Initialization permissions.
  • Support for TempDB file count, file size and file growth settings.
  • Extended diagnostics in showplan XML.
  • Lightweight per-operator query execution profiling.
  • New Dynamic Management Function sys.dm_exec_query_statistics_xml.
  • New Dynamic Management Function for incremental statistics.
  • Removed noisy In-memory related logging messages from errorlog.
  • Improved AlwaysOn Latency Diagnostics.
  • Cleaned up Manual Change Tracking.
  • DROP TABLE support for replication.
  • BULK INSERT into heaps with AUTO TABLOCK under TF 715.
  • Parallel INSERT..SELECT changes for local temp tables.

Learn more about these fixes in the Service Pack 1 Release description.

Many database engine improvements apply to both Windows and Linux. The only exception would be for database engine features that are currently not supported on Linux. For more information, see What's New in SQL Server 2017 (Database Engine).

See also

For installation requirements, unsupported feature areas, and known issues, see Release notes for SQL Server 2017 on Linux.