| title | Deprecated Database Engine Features | Microsoft Docs | |||
|---|---|---|---|---|
| titleSuffix | SQL Server 2019 | |||
| description | Find out about deprecated database engine features that are still available in SQL Server 2017 (14.x), but shouldn't be used in new applications. | |||
| ms.custom | seo-lt-2019 | |||
| ms.date | 03/30/2020 | |||
| ms.prod | sql | |||
| ms.prod_service | high-availability | |||
| ms.reviewer | ||||
| ms.technology | release-landing | |||
| ms.topic | conceptual | |||
| helpviewer_keywords |
|
|||
| ms.assetid | ||||
| author | MikeRayMSFT | |||
| ms.author | mikeray | |||
| monikerRange | >=sql-server-2017||=sqlallproducts-allversions||>=sql-server-linux-2017 |
[!INCLUDEtsql-appliesto-ss2017-xxxx-xxxx-xxx-md]
This topic describes the deprecated SQL Server Database Engine features that are still available in SQL Server 2017 (14.x). Deprecated should not be used in new applications.
When a feature is marked deprecated, it means:
-
The feature is in maintenance mode only. No new changes are done, including those related to inter-operability with new features.
-
We strive not to remove a deprecated feature from future releases to make upgrades easier. However, under rare situations, we may choose to permanently remove the feature from SQL Server if it limits future innovations.
-
For new development work, we do not recommend using deprecated features.
You can monitor the use of deprecated features by using the SQL Server Deprecated Features Object performance counter and trace events. For more information, see Use SQL Server Objects.
The values of these counters are also available by executing the following statement:
SELECT * FROM sys.dm_os_performance_counter
WHERE object_name = 'SQLServer:Deprecated Features';Note
This list is identical to the [!INCLUDEsssql15-md] list. There are no new deprecated or discontinued Database Engine features announced for [!INCLUDEsssqlv14-md].
The following SQL Server Database Engine features are deprecated in the next version of SQL Server. Do not use these features in new development work, and modify applications that currently use these features as soon as possible. The Feature name value appears in trace events as the ObjectName and in performance counters and sys.dm_os_performance_counters as the instance name.
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| RESTORE { DATABASE | LOG } WITH [MEDIA]PASSWORD continues to be deprecated. BACKUP { DATABASE | LOG } WITH PASSWORD and BACKUP { DATABASE | LOG } WITH MEDIAPASSWORD are discontinued. | None. | BACKUP DATABASE or LOG WITH PASSWORD BACKUP DATABASE or LOG WITH MEDIAPASSWORD |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| Upgrade from version 100 (SQL Server 2008 and SQL Server 2008 R2). | When a SQL Server version goes out of support, the associated Database Compatibility Level are marked deprecated. However, we continue to support applications certified on any supported database compatibility level as long as possible, to make the upgrades easier. For more information about compatibility levels, see ALTER DATABASE Compatibility Level (Transact-SQL). | Database compatibility level 100 |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| Ability to return result sets from triggers | None | Returning results from trigger |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| Encryption using RC4 or RC4_128 is deprecated and is scheduled to be removed in the next version. Decrypting RC4 and RC4_128 are not deprecated. | Use another encryption algorithm such as AES. | Deprecated encryption algorithm |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| Hash algorithms | Using the MD2, MD4, MD5, SHA, and SHA1 is deprecated. | Use SHA2_256 or SHA2_512 instead. Older algorithms continue working, but they raise a deprecation event. |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| Remote servers | sp_addremotelogin sp_addserver sp_dropremotelogin sp_helpremotelogin sp_remoteoption |
Replace remote servers by using linked servers. sp_addserver can only be used with the local option. |
| Remote servers | @@remserver | Replace remote servers by using linked servers. |
| Remote servers | SET REMOTE_PROC_TRANSACTIONS | Replace remote servers by using linked servers. |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| SET ROWCOUNT for INSERT, UPDATE, and DELETE statements | TOP keyword | SET ROWCOUNT |
| Category | Deprecated feature | Replacement | Feature name |
|---|---|---|---|
| HOLDLOCK table hint without parenthesis. | Use HOLDLOCK with parenthesis. | HOLDLOCK table hint without parenthesis |
The following SQL Server Database Engine features are supported in the next version of SQL Server. The specific version of SQL Server has not been determined.
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| BACKUP { DATABASE | LOG } TO TAPE BACKUP { DATABASE | LOG } TO device_that_is_a_tape |
BACKUP { DATABASE | LOG } TO DISK BACKUP { DATABASE | LOG } TO device_that_is_a_disk |
BACKUP DATABASE or LOG TO TAPE |
| sp_addumpdevice 'tape' | sp_addumpdevice 'disk' | ADDING TAPE DEVICE |
| sp_helpdevice | sys.backup_devices | sp_helpdevice |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| sp_dbcmptlevel | ALTER DATABASE ... SET COMPATIBILITY_LEVEL. For more information, see ALTER DATABASE Compatibility Level (Transact-SQL). | sp_dbcmptlevel |
| Database compatibility level 110 and 120. | Plan to upgrade the database and application for a future release. However, we continue to support applications certified on any supported database compatibility level as long as possible, to make the upgrades easier. For more information about compatibility levels, see ALTER DATABASE Compatibility Level (Transact-SQL). | Database compatibility level 110 Database compatibility level 120 |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| Korean_Wansung_Unicode Lithuanian_Classic SQL_AltDiction_CP1253_CS_AS |
None. These collations exist in SQL Server 2005 (9.x), but are not visible through fn_helpcollations. | Korean_Wansung_Unicode Lithuanian_Classic SQL_AltDiction_CP1253_CS_AS |
| Hindi Macedonian |
These collations exist in SQL Server 2005 (9.x) and higher, but are not visible through fn_helpcollations. Use Macedonian_FYROM_90 and Indic_General_90 instead. | Hindi Macedonian |
| Azeri_Latin_90 Azeri_Cyrilllic_90 |
Azeri_Latin_100 Azeri_Cyrilllic_100 |
Azeri_Latin_90 Azeri_Cyrilllic_90 |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| SET ANSI_NULLS OFF and ANSI_NULLS OFF database option SET ANSI_PADDING OFF and ANSI_PADDING OFF database option SET CONCAT_NULL_YIELDS_NULL OFF and CONCAT_NULL_YIELDS_NULL OFF database option SET OFFSETS |
None. ANSI_NULLS, ANSI_PADDING and CONCAT_NULLS_YIELDS_NULL are always set to ON. SET OFFSETS are unavailable. |
SET ANSI_NULLS OFF SET ANSI_PADDING OFF SET CONCAT_NULL_YIELDS_NULL OFF SET OFFSETS ALTER DATABASE SET ANSI_NULLS OFF ALTER DATABASE SET ANSI_PADDING OFF ALTER DATABASE SET CONCAT_NULL_YIELDS_NULL OFF |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| Data types | sp_addtype sp_droptype |
CREATE TYPE DROP TYPE |
| Data types | timestamp syntax for rowversion data type | rowversion data type syntax |
| Data types | Ability to insert null values into timestamp columns. | Use a DEFAULT instead. |
| Data types | 'text in row' table option | Use varchar(max), nvarchar(max), and varbinary(max) data types. For more information, see sp_tableoption (Transact-SQL). |
| Data types | Data types: text ntext image |
Use varchar(max), nvarchar(max), and varbinary(max) data types. |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| sp_attach_db sp_attach_single_file_db |
CREATE DATABASE statement with the FOR ATTACH option. To rebuild multiple log files, when one or more have a new location, use the FOR ATTACH_REBUILD_LOG option. | sp_attach_db sp_attach_single_file_db |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| CREATE DEFAULT DROP DEFAULT sp_bindefault sp_unbindefault |
DEFAULT keyword in CREATE TABLE and ALTER TABLE | CREATE_DROP_DEFAULT sp_bindefault sp_unbindefault |
| CREATE RULE DROP RULE sp_bindrule sp_unbindrule |
CHECK keyword in CREATE TABLE and ALTER TABLE | CREATE_DROP_RULE sp_bindrule sp_unbindrule |
| sp_change_users_login | Use ALTER USER. | sp_change_users_login |
| sp_depends | sys.dm_sql_referencing_entities and sys.dm_sql_referenced_entities | sp_depends |
| sp_renamedb | MODIFY NAME in ALTER DATABASE | sp_renamedb |
| sp_getbindtoken | Use MARS or distributed transactions. | sp_getbindtoken |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| sp_bindsession | Use MARS or distributed transactions. | sp_bindsession |
| sp_resetstatus | ALTER DATABASE SET { ONLINE | EMERGENCY } | sp_resetstatus |
| TORN_PAGE_DETECTION option of ALTER DATABASE | PAGE_VERIFY TORN_PAGE_DETECTION option of ALTER DATABASE | ALTER DATABASE WITH TORN_PAGE_DETECTION |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| DBCC DBREINDEX | REBUILD option of ALTER INDEX. | DBCC DBREINDEX |
| DBCC INDEXDEFRAG | REORGANIZE option of ALTER INDEX | DBCC INDEXDEFRAG |
| DBCC SHOWCONTIG | sys.dm_db_index_physical_stats | DBCC SHOWCONTIG |
| DBCC PINTABLE DBCC UNPINTABLE |
Has no effect. | DBCC [UN]PINTABLE |
| Level0type = 'type' and Level0type = 'USER' to add extended properties to level-1 or level-2 type objects.|Use Level0type = 'USER' only to add an extended property directly to a user or role.
Use Level0type = 'SCHEMA' to add an extended property to level-1 types such as TABLE or VIEW, or level-2 types such as COLUMN or TRIGGER. For more information, see sp_addextendedproperty (Transact-SQL). | EXTPROP_LEVEL0TYPE
EXTPROP_LEVEL0USER |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| xp_grantlogin xp_revokelogin xp_loginConfig |
Use CREATE LOGIN Use DROP LOGIN IsIntegratedSecurityOnly argument of SERVERPROPERTY |
xp_grantlogin |
| xp_revokelogin xp_loginconfig |
||
| srv_alloc srv_convert srv_describe srv_getbindtoken srv_got_attention srv_message_handler srv_paramdata srv_paraminfo srv_paramlen srv_parammaxlen srv_paramname srv_paramnumber srv_paramset srv_paramsetoutput srv_paramstatus srv_paramtype srv_pfield srv_pfieldex srv_rpcdb srv_rpcname srv_rpcnumber srv_rpcoptions srv_rpcowner srv_rpcparams srv_senddone srv_sendmsg srv_sendrow srv_setcoldata srv_setcollen srv_setutype srv_willconvert srv_wsendmsg |
Use CLR Integration instead. | XP_API |
| sp_addextendedproc sp_dropextendedproc sp_helpextendedproc |
Use CLR Integration instead. | sp_addextendedproc sp_dropextendedproc sp_helpextendedproc |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| fn_get_sql | sys.dm_exec_sql_text | fn_get_sql |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| database mirroring | Always On availability groups If your edition of SQL Server does not support Always On availability groups, use log shipping. |
DATABASE_MIRRORING |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| sp_indexoption | ALTER INDEX | sp_indexoption |
| CREATE TABLE, ALTER TABLE, or CREATE INDEX syntax without parentheses around the options. | Rewrite the statement to use the current syntax. | INDEX_OPTION |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| sp_configure option 'allow updates' | System tables are no longer updatable. Setting has no effect. | sp_configure 'allow updates' |
| sp_configure options: 'locks' 'open objects' 'set working set size' |
Now automatically configured. Setting has no effect. | sp_configure 'locks' sp_configure 'open objects' sp_configure 'set working set size' |
| sp_configure option 'priority boost' | System tables are no longer updatable. Setting has no effect. Use the Windows start /high ... program.exe option instead. | sp_configure 'priority boost' |
| sp_configure option 'remote proc trans' | System tables are no longer updatable. Setting has no effect. | sp_configure 'remote proc trans' |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| Specifying the SQLOLEDB provider for linked servers. | SQL Server Native Client (SQLNCLI) | SQLOLEDDB for linked servers |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| sp_lock | sys.dm_tran_locks | sp_lock |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| FILE_ID INDEXKEY_PROPERTY |
FILE_IDEX sys.index_columns |
FILE_ID INDEXKEY_PROPERTY |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| The CREATE ENDPOINT or ALTER ENDPOINT statement with the FOR SOAP option. sys.endpoint_webmethods sys.soap_endpoints |
Use Windows Communications Foundation (WCF) or ASP.NET instead. | CREATE/ALTER ENDPOINT sys.endpoint_webmethods EXT_soap_endpoints sys.soap_endpoints |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| sp_certify_removable sp_create_removable |
sp_detach_db | sp_certify_removable sp_create_removable |
| sp_dbremove | DROP DATABASE | sp_dbremove |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| The ALTER LOGIN WITH SET CREDENTIAL syntax | Replaced by the new ALTER LOGIN ADD and DROP CREDENTIAL syntax | ALTER LOGIN WITH SET CREDENTIAL |
| sp_addapprole sp_dropapprole |
CREATE APPLICATION ROLE DROP APPLICATION ROLE |
sp_addapprole sp_dropapprole |
| sp_addlogin sp_droplogin |
CREATE LOGIN DROP LOGIN |
sp_addlogin sp_droplogin |
| sp_adduser sp_dropuser |
CREATE USER DROP USER |
sp_adduser sp_dropuser |
| sp_grantdbaccess sp_revokedbaccess |
CREATE USER DROP USER |
sp_grantdbaccess sp_revokedbaccess |
| sp_addrole sp_droprole |
CREATE ROLE DROP ROLE |
sp_addrole sp_droprole |
| sp_approlepassword sp_password |
ALTER APPLICATION ROLE ALTER LOGIN |
sp_approlepassword sp_password |
| sp_changedbowner | ALTER AUTHORIZATION | sp_changedbowner |
| sp_changeobjectowner | ALTER SCHEMA or ALTER AUTHORIZATION | sp_changeobjectowner |
| sp_control_dbmasterkey_password | A master key must exist and password must be correct. | sp_control_dbmasterkey_password |
| sp_defaultdb sp_defaultlanguage |
ALTER LOGIN | sp_defaultdb sp_defaultlanguage |
| sp_denylogin sp_grantlogin sp_revokelogin |
ALTER LOGIN DISABLE CREATE LOGIN DROP LOGIN |
sp_denylogin sp_grantlogin sp_revokelogin |
| USER_ID | DATABASE_PRINCIPAL_ID | USER_ID |
| sp_srvrolepermission sp_dbfixedrolepermission |
These stored procedures return information that was correct in [!INCLUDEssVersion2000]. The output does not reflect changes to the permissions hierarchy implemented in SQL Server 2008. For more information, see Permissions of Fixed Server Roles. | sp_srvrolepermission sp_dbfixedrolepermission |
| GRANT ALL DENY ALL REVOKE ALL |
GRANT, DENY, and REVOKE-specific permissions. | ALL Permission |
| PERMISSIONS intrinsic function | Query sys.fn_my_permissions instead. | PERMISSIONS |
| SETUSER | EXECUTE AS | SETUSER |
| RC4 and DESX encryption algorithms | Use another algorithm such as AES. | DESX algorithm |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| sys.dm_exec_describe_first_result_set (Transact-SQL), sys.dm_exec_describe_first_result_set_for_object (Transact-SQL), sp_describe_first_result_set (Transact-SQL), and sp_describe_undeclared_parameters (Transact-SQL). | SET FMTONLY |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| c2 audit option default trace enabled option | common criteria compliance enabled Server Configuration Option Extended Events |
sp_configure 'c2 audit mode' sp_configure 'default trace enabled' |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| Microsoft.SQLServer. Management.Smo.Information class Microsoft.SQLServer. Management.Smo.Settings class Microsoft.SQLServer.Management. Smo.DatabaseOptions class Microsoft.SqlServer.Management.Smo. DatabaseDdlTrigger.NotForReplication property |
Microsoft.SqlServer. Management.Smo.Server class Microsoft.SqlServer. Management.Smo.Server class Microsoft.SqlServer. Management.Smo.Database class None |
None |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| net send notification Pager notification |
E-mail notification E-mail notification |
None |
| Solution Explorer integration in SQL Server Management Studio | | None |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| sp_db_increased_partitions | None. Support for increased partitions is available by default in SQL Server 2019 (15.x). | sp_db_increased_partitions |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| sysaltfiles syscacheobjects syscolumns syscomments sysconfigures sysconstraints syscurconfigs sysdatabases sysdepends sysdevices sysfilegroups sysfiles sysforeignkeys sysfulltextcatalogs sysindexes sysindexkeys syslockinfo syslogins sysmembers sysmessages sysobjects sysoledbusers sysopentapes sysperfinfo syspermissions sysprocesses sysprotects sysreferences sysremotelogins sysservers systypes sysusers |
Compatibility views. For more information, see Compatibility Views (Transact-SQL). Important: The compatibility views do not expose metadata for features that were introduced in SQL Server 2005 (9.x). We recommend that you upgrade your applications to use catalog views. For more information, see Catalog Views (Transact-SQL). |
sysaltfiles syscacheobjects syscolumns syscomments sysconfigures sysconstraints syscurconfigs sysdatabases sysdepends sysdevices sysfilegroups sysfiles sysforeignkeys sysfulltextcatalogs sysindexes sysindexkeys syslockinfo syslogins sysmembers sysmessages sysobjects sysoledbusers sysopentapes sysperfinfo syspermissions sysprocesses sysprotects sysreferences sysremotelogins sysservers systypes sysusers |
| sys.numbered_procedures sys.numbered_procedure_parameters |
None | numbered_procedures numbered_procedure_parameters |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| sp_trace_create sp_trace_setevent sp_trace_setfilter sp_trace_setstatus fn_trace_geteventinfo fn_trace_getfilterinfo fn_trace_getinfo fn_trace_gettable sys.traces sys.trace_events sys.trace_event_bindings sys.trace_categories sys.trace_columns sys.trace_subclass_values |
Extended Events | sp_trace_create sp_trace_setevent sp_trace_setfilter sp_trace_setstatus fn_trace_geteventinfo fn_trace_getfilterinfo fn_trace_getinfo fn_trace_gettable sys.traces sys.trace_events sys.trace_event_bindings sys.trace_categories sys.trace_columns sys.trace_subclass_values |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| fn_virtualservernodes fn_servershareddrives |
sys.dm_os_cluster_nodes sys.dm_io_cluster_shared_drives |
fn_virtualservernodes fn_servershareddrives |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| sys.sql_dependencies | sys.sql_expression_dependencies | sys.sql_dependencies |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| The use of the vardecimal storage format. | Vardecimal storage format is deprecated. SQL Server 2019 (15.x) data compression, compresses decimal values as well as other data types. We recommend that you use data compression instead of the vardecimal storage format. | Vardecimal storage format |
| Use of the sp_db_vardecimal_storage_format procedure. | Vardecimal storage format is deprecated. SQL Server 2019 (15.x) data compression, compresses decimal values as well as other data types. We recommend that you use data compression instead of the vardecimal storage format. | sp_db_vardecimal_storage_format |
| Use of the sp_estimated_rowsize_reduction_for_vardecimal procedure. | Use data compression and the sp_estimate_data_compression_savings procedure instead. | sp_estimated_rowsize_reduction_for_vardecimal |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| Specifying NOLOCK or READUNCOMMITTED in the FROM clause of an UPDATE or DELETE statement. | Remove the NOLOCK or READUNCOMMITTED table hints from the FROM clause. | NOLOCK or READUNCOMMITTED in UPDATE or DELETE |
| Specifying table hints without using the WITH keyword. | Use WITH. | Table hint without WITH |
| INSERT_HINTS | INSERT_HINTS |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| WRITETEXT UPDATETEXT READTEXT |
None | UPDATETEXT or WRITETEXT READTEXT |
| TEXTPTR() TEXTVALID() |
None | TEXTPTR TEXTVALID |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| :: function-calling sequence | Replaced by SELECT column_list FROM sys.<function_name>(). For example, replace SELECT * FROM ::fn_virtualfilestats(2,1)with SELECT * FROM sys.fn_virtualfilestats(2,1). |
'::' function calling syntax |
| Three-part and four-part column references. | Two-part names are the standard-compliant behavior. | More than two-part column name |
| A string enclosed in quotation marks used as a column alias for an expression in a SELECT list: 'string_alias' = expression |
expression [AS] column_alias expression [AS] [column_alias] expression [AS] "column_alias" expression [AS] 'column_alias' column_alias = expression |
String literals as column aliases |
| Numbered procedures | None. Do not use. | ProcNums |
| table_name.index_name syntax in DROP INDEX | index_name ON table_name syntax in DROP INDEX. | DROP INDEX with two-part name |
| Not ending Transact-SQL statements with a semicolon. | End Transact-SQL statements with a semicolon ( ; ). | None |
| GROUP BY ALL | Use custom case-by-case solution with UNION or derived table. | GROUP BY ALL |
| ROWGUIDCOL as a column name in DML statements. | Use $rowguid. | ROWGUIDCOL |
| IDENTITYCOL as a column name in DML statements. | Use $identity. | IDENTITYCOL |
| Use of #, ## as temporary table and temporary stored procedure names. | Use at least one additional character. | '#' and '##' as the name of temporary tables and stored procedures |
| Use of @, @@, or @@ as Transact-SQL identifiers. | Do not use @ or @@ or names that begin with @@ as identifiers. | '@' and names that start with '@@' as Transact-SQL identifiers |
| Use of DEFAULT keyword as default value. | Do not use the word DEFAULT as a default value. | DEFAULT keyword as a default value |
| Use of a space as a separator between table hints. | Use a comma to separate table hints. | Multiple table hints without comma |
| The select list of an aggregate indexed view must contain COUNT_BIG (*) in 90 compatibility mode | Use COUNT_BIG (*). | Index view selects list without COUNT_BIG(*) |
| The indirect application of table hints to an invocation of a multi-statement table-valued function (TVF) through a view. | None. | Indirect TVF hints |
| ALTER DATABASE syntax: MODIFY FILEGROUP READONLY MODIFY FILEGROUP READWRITE |
MODIFY FILEGROUP READ_ONLY MODIFY FILEGROUP READ_WRITE |
MODIFY FILEGROUP READONLY MODIFY FILEGROUP READWRITE |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| DB-Library Embedded SQL for C |
Although the Database Engine still supports connections from existing applications that use the DB-Library and Embedded SQL APIs, it does not include the files or documentation required to do programming work on applications that use these APIs. A future version of the SQL Server Database Engine drops support for connections from DB-Library or Embedded SQL applications. Do not use DB-Library or Embedded SQL to develop new applications. Remove any dependencies on either DB-Library or Embedded SQL when you are modifying existing applications. Instead of these APIs, use the SQLClient namespace or an API such as ODBC. SQL Server 2019 (15.x) does not include the DB-Library DLL required to run these applications. To run DB-Library or Embedded SQL applications, you must have available the DB-Library DLL from SQL Server version 6.5, SQL Server 7.0, or SQL Server 2000 (8.x). | None |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| SQL Server Profiler for Trace Capture | Use Extended Events Profiler embedded in SQL Server Management Studio. | SQL Server Profiler |
| SQL Server Profiler for Trace Replay | SQL Server Distributed Replay | SQL Server Profiler |
| Microsoft.SqlServer.Management.Trace namespace (contains the APIs for SQL Server Trace and Replay objects)|Trace Configuration: xref:Microsoft.SqlServer.Management.XEvent
Trace Reading: xref:Microsoft.SqlServer.XEvent.Linq
Trace Replay: None | |
| Deprecated feature | Replacement | Feature name |
|---|---|---|
| Inline XDR Schema Generation | The XMLDATA directive to the FOR XML option is deprecated. Use XSD generation in the case of RAW and AUTO modes. There is no replacement for the XMLDATA directive in EXPLICT mode. | XMLDATA |
Note
The cookie OUTPUT parameter for sp_setapprole is currently documented as varbinary(8000) which is the correct maximum length. However the current implementation returns varbinary(50). If developers have allocated varbinary(50) the application might require changes if the cookie return size increases in a future release. Though not a deprecation issue this is mentioned in this topic because the application adjustments are similar. For more information, see sp_setapprole (Transact-SQL).
Discontinued Database Engine Functionality in SQL Server 2016