SQL Server 2017 (14.x) 中弃用的数据库引擎功能

适用于: SQL Server 2017 (14.x) 及更高版本

SQL Server 2017 (14.x) 已弃用:

  • Data Quality Services (DQS)
  • Master Data Services (MDS)

以前版本中已弃用的功能也在 SQL Server 2017(14.x)中弃用。 有关 SQL Server 其他版本中已弃用的功能的信息,请参阅:

弃用指南

本主题介绍 SQL Server 2017 (14.x) 中仍然可用但不推荐使用的 SQL Server 数据库引擎 功能。 在新的应用程序中不应使用已弃用的功能。

如果功能标记为已弃用,表示:

  • 该功能仅处于维护模式。 未进行任何新更改,包括与新功能的互操作性有关的更改。
  • 我们努力不从将来的版本中删除已弃用的功能,使升级更简单。 但是,在极少数情况下,如果该功能限制了将来的创新,我们可能选择从 SQL Server 中将其永久停用(删除)。
  • 请勿在新的开发工作中使用已弃用的功能。 对于现有应用,计划尽快修改当前使用这些功能的应用程序。

可以使用 SQL Server Deprecated Features Object 性能计数器监视不推荐使用的功能的使用情况并跟踪事件。 有关详细信息,请参阅 使用 SQL Server 对象

这些计数器的值也可通过执行以下语句而得:

SELECT * FROM sys.dm_os_performance_counters   
WHERE object_name LIKE '%SQL%Deprecated Features%';  

注意

此列表与 SQL Server 2016 (13.x) 列表相同。 SQL Server 2017 (14.x) 未宣布弃用或停止使用任何新的数据库引擎功能。

SQL Server 的下一版本中弃用的功能

未来版本的 SQL Server 将不再支持以下 SQL Server 数据库引擎功能。 请不要在新的开发工作中使用这些功能,并尽快修改当前还在使用这些功能的应用程序。 功能名称值在跟踪事件中显示为 ObjectName,而在性能计数器和 中显示为实例名称 。 功能 ID 值在跟踪事件中作为 ObjectId。

备份和还原

不推荐使用的功能 替代功能 功能名称 功能 ID
仍弃用 RESTORE { DATABASE | LOG } WITH [MEDIA]PASSWORD。

停止使用 BACKUP { DATABASE | LOG } WITH PASSWORD 和 BACKUP { DATABASE | LOG } WITH MEDIAPASSWORD。
无。 BACKUP DATABASE 或 LOG WITH PASSWORD

BACKUP DATABASE 或 LOG WITH MEDIAPASSWORD
104

103

兼容级别

不推荐使用的功能 替代功能 功能名称 功能 ID
从版本 100 升级(SQL Server 2008 (10.0.x) 和 SQL Server 2008 R2 (10.50.x))。 SQL Server 版本结束支持时,相关数据库兼容性级别将被标记为弃用。 但是,我们继续支持在任何支持的数据库兼容性级别上认证的应用程序尽可能长的时间,使升级更简单。 有关兼容性级别的详细信息,请参阅 ALTER DATABASE 兼容级别 (Transact-SQL) 数据库兼容性级别 100 108

数据库对象

不推荐使用的功能 替代功能 功能名称 功能 ID
从触发器返回结果集的功能 从触发器返回结果 12

加密

不推荐使用的功能 替代功能 功能名称 功能 ID
不推荐使用通过 RC4 或 RC4_128 进行加密,并计划在下一个版本中删除这种加密方法。 解密 RC4 和 RC4_128 未弃用。 请使用其他加密算法,例如 AES。 不推荐使用的加密算法 253
使用 MD2、MD4、MD5、SHA 和 SHA1 已弃用。 请改用 SHA2_256 或 SHA2_512。 旧算法继续起作用,但会抛出弃用事件。 弃用的哈希算法

远程服务器

不推荐使用的功能 替代功能 功能名称 功能 ID
sp_addremotelogin(添加远程登录)

sp_addserver

sp_dropremotelogin

sp_helpremotelogin

远程选项
用链接服务器替代远程服务器。 sp_addserver 仅可与本地选项一起使用。 sp_addremotelogin(添加远程登录)

sp_addserver

sp_dropremotelogin

sp_helpremotelogin

远程选项
70

69

71

72

73
@@remserver 用链接服务器替代远程服务器。
设置远程过程事务 用链接服务器替代远程服务器。 设置远程过程事务 110

Transact-SQL

不推荐使用的功能 替代功能 功能名称 功能 ID
适用于SET ROWCOUNTINSERT, UPDATE语句的 DELETE TOP 关键字 SET ROWCOUNT (设置行数限制) 109
不带括号的 HOLDLOCK 表提示。 使用 HOLDLOCK 以及括号。 不带括号的 HOLDLOCK 表提示 167

SQL Server 未来版本中弃用的功能

下一个版本的 SQL Server 支持以下 SQL Server 数据库引擎功能。 具体是哪个 SQL Server 版本现在还未确定。

备份和还原

不推荐使用的功能 替代功能 功能名称
备份 {数据库 | 日志} 到磁带驱动器

BACKUP { DATABASE | LOG } TO device_that_is_a_tape
备份 {数据库 | 日志} 到磁盘上

BACKUP { DATABASE | LOG } TO device_that_is_a_disk
BACKUP DATABASE 或 LOG TO TAPE
sp_addumpdevice“磁带 sp_addumpdevice“disk 添加磁带设备
sp_helpdevice sys.backup_devices sp_helpdevice

兼容级别

不推荐使用的功能 替代功能 功能名称
sp_dbcmptlevel ALTER DATABASE ...SET COMPATIBILITY_LEVEL。 有关详细信息,请参阅 ALTER DATABASE 兼容性级别 (Transact-SQL) sp_dbcmptlevel
数据库兼容性级别 110 和 120。 计划为未来版本升级数据库和应用程序。 但是,我们继续支持在任何支持的数据库兼容性级别上认证的应用程序尽可能长的时间,使升级更简单。 有关兼容性级别的详细信息,请参阅 ALTER DATABASE 兼容级别 (Transact-SQL) 数据库兼容性级别 110

数据库兼容性级别 120

排序规则

不推荐使用的功能 替代功能 功能名称
Korean_Wansung_Unicode

立陶宛经典

SQL_AltDiction_CP1253_CS_AS
无。 SQL Server 2005 (9.x) 中存在这些排序规则,但 fn_helpcollations 并不将它们显示出来。 Korean_Wansung_Unicode

立陶宛经典

SQL_AltDiction_CP1253_CS_AS
印地语

马其顿语
SQL Server 2005 (9.x) 及更高版本中存在这些排序规则,但 fn_helpcollations 并不将它们显示出来。 请改用 Macedonian_FYROM_90 和 Indic_General_90。 印地语

马其顿语
Azeri_Latin_90

阿塞拜疆语_西里尔字母_90
Azeri_Latin_100

Azeri_Cyrillic_100
Azeri_Latin_90

Azeri_Cyrilllic_90

数据类型

不推荐使用的功能 替代功能 功能名称
sp_addtype

sp_droptype
创建类型

删除类型
sp_addtype

sp_droptype
timestamp 数据类型的 rowversion 语法 rowversion 数据类型语法 时间戳
timestamp 列中插入 null 值的功能。 请改用 DEFAULT。 将 NULL 插入 TIMESTAMP 列
“text in row”表选项 使用 varchar(max)nvarchar(max)varbinary(max) 数据类型。 有关详细信息,请参阅 sp_tableoption (Transact-SQL) text in row 表选项
数据类型:

文本

ntext

图像
使用 varchar(max)nvarchar(max)varbinary(max) 数据类型。 数据类型:text、ntext 或 image

数据库管理

不推荐使用的功能 替代功能 功能名称
sp_attach_db (用于附加数据库的命令)

sp_attach_single_file_db
使用 FOR ATTACH 选项的 CREATE DATABASE 语句。 若要在一个或多个日志文件有新位置的情况下重新生成这些日志文件,请使用 FOR ATTACH_REBUILD_LOG 选项。 sp_attach_db (用于附加数据库的命令)

sp_attach_single_file_db
sp_certify_removable(可移除认证)

sp_create_removable
sp_detach_db sp_certify_removable(可移除认证)

sp_create_removable
sp_dbremove 删除数据库 sp_dbremove
sp_renamedb ALTER DATABASE 中的 MODIFY NAME sp_renamedb

数据库对象

不推荐使用的功能 替代功能 功能名称
创建默认值

删除默认值

sp_bindefault

sp_unbindefault
CREATE TABLE 和 ALTER TABLE 中的 DEFAULT 关键字 创建_删除_默认值

sp_bindefault

sp_unbindefault
创建规则

删除规则

sp_bindrule

sp_unbindrule
CREATE TABLE 和 ALTER TABLE 中的 CHECK 关键字 CREATE_DROP_RULE(创建删除规则)

sp_bindrule

sp_unbindrule
sp_change_users_login 使用 ALTER USER。 sp_change_users_login
sp_depends sys.dm_sql_referenced_entities 和 sys.dm_sql_referenced_entities sp_depends
sp_getbindtoken 使用 MARS 或分布式事务。 sp_getbindtoken

数据库选项

不推荐使用的功能 替代功能 功能名称
sp_bindsession 使用 MARS 或分布式事务。 sp_bindsession
sp_resetstatus ALTER DATABASE SET { ONLINE |EMERGENCY } sp_resetstatus
ALTER DATABASE 的 TORN_PAGE_DETECTION 选项 ALTER DATABASE 的 PAGE_VERIFY TORN_PAGE_DETECTION 选项 修改数据库并启用TORN_PAGE_DETECTION功能

DBCC

不推荐使用的功能 替代功能 功能名称
DBCC DBREINDEX ALTER INDEX 的 REBUILD 选项。 DBCC DBREINDEX
DBCC INDEXDEFRAG ALTER INDEX 的 REORGANIZE 选项 DBCC INDEXDEFRAG
DBCC SHOWCONTIG sys.dm_db_index_physical_stats DBCC SHOWCONTIG
DBCC PINTABLE

DBCC UNPINTABLE
无效。 DBCC [UN]PINTABLE

扩展属性

不推荐使用的功能 替代功能 功能名称
用 Level0type = 'type' 和 Level0type = 'USER' 向 1 级或 2 级类型对象添加扩展属性。 用 Level0type = 'USER' 只可直接向用户或角色添加扩展属性。

用 Level0type = 'SCHEMA' 向 1 级类型(如 TABLE 或 VIEW)或 2 级类型(如 COLUMN 或 TRIGGER)添加扩展属性。 有关详细信息,请参阅 sp_addextendedproperty (Transact-SQL)
EXTPROP_LEVEL0TYPE

EXTPROP_LEVEL0USER

扩展的存储过程

不推荐使用的功能 替代功能 功能名称
xp_grantlogin(授予登录权限)

xp_revokelogin

xp_loginConfig
使用 CREATE LOGIN

使用 SERVERPROPERTY 的 DROP LOGIN IsIntegratedSecurityOnly 参数
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_参数名称

srv_paramnumber

srv_paramset

srv_paramsetoutput

服务器参数状态

服务器参数类型

srv_pfield

srv_pfieldex

srv_rpcdb

srv_rpcname

srv_rpcnumber

srv_rpcoptions

srv_rpcowner

srv_rpcparams

服务器发送完成

srv_sendmsg

srv_sendrow

srv_setcoldata

srv_setcollen

srv_setutype

srv_willconvert

srv_wsendmsg
请改用 CLR 集成。 XP_API
sp_addextendedproc

sp_dropextendedproc

sp_helpextendedproc
请改用 CLR 集成。 sp_addextendedproc

sp_dropextendedproc

sp_helpextendedproc
xp_grantlogin(授予登录权限)

xp_revokelogin

xp_loginConfig
使用 CREATE LOGIN

使用 SERVERPROPERTY 的 DROP LOGIN IsIntegratedSecurityOnly 参数
xp_grantlogin(授予登录权限)

xp_revokelogin

xp_loginConfig

高可用性

不推荐使用的功能 替代功能 功能名称
数据库镜像 AlwaysOn 可用性组

如果 SQL Server 的版本不支持 Always On 可用性组,请使用日志传送。
数据库镜像

索引选项

不推荐使用的功能 替代功能 功能名称
sp_indexoption ALTER INDEX sp_indexoption
选项两侧没有括号的 CREATE TABLE、ALTER TABLE 或 CREATE INDEX 语法。 请重写语句以使用当前语法。 索引选项

实例选项

不推荐使用的功能 替代功能 功能名称
sp_configure选项“允许更新” 系统表不再可更新。 其设置不起作用。 sp_configure“允许更新”
sp_configure 选项:

锁具

“打开对象”

“设置工作集大小”
这些选项目前为自动配置。 其设置不起作用。 sp_configure“locks”

sp_configure“打开对象”

sp_configure“设置工作集大小”
sp_configure选项“优先级提升” 系统表不再可更新。 其设置不起作用。 请改用 Windows start /high … program.exe 选项。 sp_configure“优先级提升”
sp_configure选项“remote proc trans” 系统表不再可更新。 其设置不起作用。 sp_configure '远程过程事务'

链接服务器

不推荐使用的功能 替代功能 功能名称
对于链接服务器,指定 SQLOLEDB 访问接口。 适用于 SQL Server 的 Microsoft OLE DB 驱动程序 (MSOLEDBSQL) 对于链接服务器使用 SQLOLEDB

元数据

不推荐使用的功能 替代功能 功能名称
FILE_ID

索引键_属性
FILE_IDEX

sys.index_columns(系统索引列)
FILE_ID

INDEXKEY_PROPERTY

本机 XML Web 服务

不推荐使用的功能 替代功能 功能名称
带有 FOR SOAP 选项的 CREATE ENDPOINT 或 ALTER ENDPOINT 语句。

sys.endpoint_webmethods

系统 SOAP 端点
请改用 Windows Communications Foundation (WCF) 或 ASP.NET。 创建/修改端点

sys.endpoint_webmethods

EXT_soap_端点

系统 SOAP 端点

其他

不推荐使用的功能 替代功能 功能名称
DB-Library

用于 C 语言的嵌入式 SQL
尽管数据库引擎仍然支持来自使用 DB-Library 和嵌入式 SQL API 的现有应用程序的连接,但它不包括在使用这些 API 的应用程序上进行编程工作所需的文件或文档。 SQL Server 数据库引擎的未来版本将不再支持来自 DB-Library 或嵌入式 SQL 应用程序的连接。 请不要使用 DB-Library 或嵌入式 SQL 来开发新的应用程序。 修改现有应用程序时,请删除 DB-Library 或嵌入式 SQL 的任何依赖项。 请使用 SQLClient 命名空间或诸如 ODBC 的 API,而不使用这些 API。 SQL Server 2019 (15.x) 不包含运行这些应用程序所需的 DB-Library DLL。 若要运行 DB-Library 或嵌入式 SQL 应用程序,必须有 SQL Server 6.5 版、SQL Server 7.0 版或 SQL Server 2000 (8.x) 提供的 DB-Library DLL。

安全性

不推荐使用的功能 替代功能 功能名称
ALTER LOGIN WITH SET CREDENTIAL 语法 由新的 ALTER LOGIN ADD 和 DROP CREDENTIAL 语法取代 更改登录名设置凭证
sp_addapprole

sp_dropapprole
创建应用程序角色

删除应用程序角色
sp_addapprole

sp_dropapprole
sp_addlogin

sp_droplogin
创建登录

删除登录账号
sp_addlogin

sp_droplogin
sp_adduser

sp_dropuser
创建用户

删除用户
sp_adduser

sp_dropuser
sp_grantdbaccess

sp_revokedbaccess (撤销数据库访问权限)
创建用户

删除用户 (DROP USER)
sp_grantdbaccess

sp_revokedbaccess (撤销数据库访问权限)
sp_addrole

sp_droprole
创建角色

删除角色
sp_addrole

sp_droprole
角色密码sp_approlepassword

sp_password
ALTER APPLICATION ROLE

ALTER LOGIN
角色密码sp_approlepassword

sp_password
sp_changedbowner 更改授权 sp_changedbowner
更改对象所有者 ALTER SCHEMA 或 ALTER AUTHORIZATION sp_changeobjectowner
sp_control_dbmasterkey_password(控制数据库主密钥密码) 主密钥必须存在,并且密码必须是正确的。 sp_control_dbmasterkey_password(控制数据库主密钥密码)
sp_defaultdb

sp_defaultlanguage
修改登录 sp_defaultdb

sp_defaultlanguage
sp_denylogin

sp_grantlogin

sp_revokelogin
禁用登录权限

创建登录

删除登录账号
sp_denylogin

sp_grantlogin

sp_revokelogin
USER_ID 数据库主体标识符 USER_ID
sp_srvrolepermission

sp_dbfixedrolepermission
这些存储过程返回在 SQL Server 2000 (8.x)中是正确的信息。 该输出不反映在 SQL Server 2008 中实现的权限层次结构的更改。 有关详细信息,请参阅 固定服务器角色的权限 sp_srvrolepermission

sp_dbfixedrolepermission
GRANT ALL

全部拒绝

撤销全部
GRANT、DENY 和 REVOKE 特定的权限。 ALL 权限
PERMISSIONS 内部函数 请改为查询 sys.fn_my_permissions。 权限
SETUSER 以...身份执行 SETUSER
RC4 和 DESX 加密算法 请使用其他算法,如 AES。 DESX 算法

服务器配置选项

不推荐使用的功能 替代功能 功能名称
c2 审核选项默认启用跟踪选项

default trace enabled 选项
启用了通用准则合规性的服务器配置选项

扩展事件
sp_configure“c2 审核模式”

sp_configure“已启用默认跟踪”

SMO 类

不推荐使用的功能 替代功能 功能名称
Microsoft.SQLServer。 Management.Smo.Information

Microsoft.SQLServer。 Management.Smo.Settings

Microsoft.SQLServer.Management。 Smo.数据库选项

Microsoft.SqlServer.Management.Smo。 数据库Ddl触发器.不用于复制 财产
Microsoft.SqlServer。 Management.Smo.Server

*Microsoft.SqlServer. Management.Smo.Server

Microsoft.SqlServer。 Management.Smo.Database

SQL Server 代理

不推荐使用的功能 替代功能 功能名称
net send 通知

寻呼通知
电子邮件通知

电子邮件通知

SQL Server Management Studio

不推荐使用的功能 替代功能 功能名称
SQL Server Management Studio 中的解决方案资源管理器集成

系统存储过程和函数

不推荐使用的功能 替代功能 功能名称
sp_db_increased_partitions(增加分区的存储过程) 无。 默认情况下,SQL Server 2019 (15.x) 提供了对增加的分区的支持。 sp_db_increased_partitions (数据库增加的分区)
fn_virtualservernodes

服务器共享驱动器
sys.dm_os_cluster_nodes

sys.dm_io_cluster_shared_drives (系统驱动器共享群集)
fn_virtualservernodes

服务器共享驱动器
fn_get_sql sys.dm_exec_sql_text fn_get_sql
sp_lock sys.dm_tran_locks sp_lock

系统表

不推荐使用的功能 替代功能 功能名称
sysaltfiles

syscacheobjects

syscolumns

syscomments (系统注释)

系统配置

系统约束 (sysconstraints)

syscurconfigs

sysdatabases

sysdepends

系统设备

sysfilegroups

系统文件

系统外键

sysfulltextcatalogs

系统索引

sysindexkeys

系统锁定信息

syslogins

sysmembers

系统消息

sysobjects

sysoledbusers(OLE DB 用户表)

sysopentapes

sysperfinfo

syspermissions

sysprocesses

系统保护

sysreferences

sysremotelogins(系统远程登录)

sysservers

systypes

系统用户
兼容性视图。 有关详细信息,请参阅兼容性视图 (Transact-SQL)

重要提示:兼容性视图不公开 SQL Server 2005 (9.x) 中引入功能的元数据。 建议将应用程序升级为使用目录视图。 有关详细信息,请参阅目录视图 (Transact-SQL)
sysaltfiles

syscacheobjects

syscolumns

syscomments (系统注释)

系统配置

系统约束 (sysconstraints)

syscurconfigs

sysdatabases

sysdepends

系统设备

sysfilegroups

系统文件

系统外键

sysfulltextcatalogs

系统索引

sysindexkeys

系统锁定信息

syslogins

sysmembers

系统消息

sysobjects

sysoledbusers(OLE DB 用户表)

sysopentapes

sysperfinfo

syspermissions

sysprocesses

系统保护

sysreferences

sysremotelogins(系统远程登录)

sysservers

systypes

系统用户
sys.numbered_procedures

sys.numbered_procedure_parameters
编号程序

编号的过程参数

SQL 跟踪存储过程、函数和目录视图

不推荐使用的功能 替代功能 功能名称
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 (追踪子类值的系统功能)
扩展事件 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 (追踪子类值的系统功能)

系统视图

不推荐使用的功能 替代功能 功能名称
sys.sql_dependencies(系统 SQL 依赖关系) sys.sql_expression_dependencies sys.sql_dependencies(系统 SQL 依赖关系)

表压缩

不推荐使用的功能 替代功能 功能名称
vardecimal 存储格式的使用。 不推荐使用 Vardecimal 存储格式。 SQL Server 2019 (15.x) 提供的数据压缩功能可以压缩十进制值和其他数据类型的值。 建议您使用数据压缩,而不使用 vardecimal 存储格式。 vardecimal 存储格式
sp_db_vardecimal_storage_format 过程的使用。 不推荐使用 Vardecimal 存储格式。 SQL Server 2019 (15.x) 提供的数据压缩功能可以压缩十进制值和其他数据类型的值。 建议您使用数据压缩,而不使用 vardecimal 存储格式。 sp_db_vardecimal_storage_format
sp_estimated_rowsize_reduction_for_vardecimal 过程的使用。 请改用数据压缩和 sp_estimate_data_compression_savings 过程。 sp_estimated_rowsize_reduction_for_vardecimal

文本指针

不推荐使用的功能 替代功能 功能名称
输入文本

更新文本

READTEXT
UPDATETEXT 或 WRITETEXT

READTEXT
TEXTPTR()

TEXTVALID()
TEXTPTR

文本有效

Transact-SQL

不推荐使用的功能 替代功能 功能名称
:: 函数调用序 替换为 SELECT column_list FROM sys.function_name<()。

例如,将 SELECT * FROM ::fn_virtualfilestats(2,1)替换为 SELECT * FROM sys.fn_virtualfilestats(2,1)
“::”函数调用语法
由三部分和四部分组成的列引用。 由两部分组成的名称是符合标准的行为。 两个以上的部分构成的列名称
用引号引起来的字符串用作 SELECT 列表中表达式的列别名:

string_alias” = 表达式
表达式 [AS] column_alias

表达式 [AS] [column_alias]

表达式 [AS] “column_alias

表达式 [AS] 'column_alias'

column_alias表达式
字符串文字作为列别名
编号过程 无。 请不要使用。 ProcNums
在 DROP INDEX 中使用table_name.index_name 语法 在 DROP INDEX 中使用index_name ON table_name 语法。 DROP INDEX 具有两部分构成的名称
不使用分号结束 Transact-SQL 语句。 使用分号 (;) 结束 Transact-SQL 语句。
按所有列分组 将自定义逐案例解决方案与 UNION 或派生表配合使用。 按所有列分组
ROWGUIDCOL 在 DML 语句中用作列名。 请使用 $rowguid。 ROWGUIDCOL
IDENTITYCOL 在 DML 语句中用作列名。 请使用 $identity。 IDENTITYCOL
将 #、## 用作临时表和临时存储过程名称。 请至少使用一个其他字符。 “#”和“##”作为临时表和存储过程的名称
将 @、@@ 或 @@ 用作 Transact-SQL 标识符。 请勿使用 @ 或 @@,或者以 @@ 开头的名称作为标识符。 “@”和以“@@”开头的名称作为 Transact-SQL 标识符
将 DEFAULT 关键字用作默认值。 不要将单词 DEFAULT 用作默认值。 DEFAULT 关键字作为默认值
将空格用作表提示之间的分隔符。 使用逗号分隔各个表提示。 没有逗号的多个表提示
聚集索引视图的选择列表在 90 兼容模式下必须包含 COUNT_BIG (*) 请使用 COUNT_BIG (*)。 不包含 COUNT_BIG(*) 的索引视图选择列表
表提示通过视图间接应用于多语句表值函数 (TVF) 的调用。 无。 间接 TVF 提示
ALTER DATABASE 语法:

修改文件组为只读

修改文件组为可读写
修改文件组只读

修改文件组为读写模式
修改文件组为只读

修改文件组为可读写
SET ANSI_NULLS OFF 和 ANSI_NULLS OFF 数据库选项

SET ANSI_PADDING OFF 和 ANSI_PADDING OFF 数据库选项

SET CONCAT_NULL_YIELDS_NULL OFF 和 CONCAT_NULL_YIELDS_NULL OFF 数据库选项

设置偏移量
无。

ANSI_NULLS、ANSI_PADDING 和 CONCAT_NULLS_YIELDS_NULL 这三个选项始终设置为 ON。 SET OFFSETS 不可用。
SET ANSI_NULLS OFF(设置 ANSI_NULLS 关闭)

SET ANSI_PADDING OFF

设置 CONCAT_NULL_YIELDS_NULL 为 OFF

设置偏移量

ALTER 数据库 SET ANSI_NULLS OFF

ALTER DATABASE SET ANSI_PADDING OFF

ALTER DATABASE SET CONCAT_NULL_YIELDS_NULL OFF(将数据库设置为,当连接 NULL 值时,结果不自动为 NULL)
SET FMTONLY 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)sp_describe_undeclared_parameters (Transact-SQL). SET FMTONLY
在 UPDATE 或 DELETE 语句的 FROM 子句中指定 NOLOCK 或 READUNCOMMITTED。 请从 FROM 子句中删除 NOLOCK 或 READUNCOMMITTED 表提示。 UPDATE 或 DELETE 中的 NOLOCK 或 READUNCOMMITTED
不借助 WITH 关键字指定表提示。 使用 WITH。 不带 WITH 的表提示
INSERT_HINTS INSERT_HINTS

工具

不推荐使用的功能 替代功能 功能名称
用于跟踪捕获的 SQL Server Profiler 使用 SQL Server Management Studio 中嵌入的扩展事件探查器。 SQL Server Profiler
用于跟踪重播的 SQL Server Profiler SQL Server 分布式重播

跟踪管理对象

不推荐使用的功能 替代功能 功能名称
Microsoft.SqlServer.Management.Trace 命名空间(包含用于 SQL Server 跟踪和重播对象的 API) 跟踪配置: Microsoft.SqlServer.Management.XEvent

跟踪读取: Microsoft.SqlServer.XEvent.Linq

跟踪重播:无

XML

不推荐使用的功能 替代功能 功能名称
内联 XDR 架构生成 不推荐使用 FOR XML 选项的 XMLDATA 指令。 如果是 RAW 和 AUTO 模式,请使用 XSD 生成。 在 EXPLICT 模式下,没有可以代替 XMLDATA 指令的项。 XMLDATA

注意

sp_setapprole 的 cookie OUTPUT 参数现记载为 varbinary(8000) ,这是正确的最大长度。 但是,目前执行返回 varbinary(50) 。 如果开发人员已分配 varbinary(50) ,当 cookie 在将来的版本中返回大小增量时,应用程序可能需要更改。 尽管这不是不推荐使用的问题,但本主题中提到了,因为应用程序调整都是类似的。 有关详细信息,请参阅 sp_setapprole