适用于: 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 2025 中弃用的数据库引擎功能 (17.x)
- SQL Server 2022 中弃用的数据库引擎功能(16.x)
- SQL Server 2019 (15.x) 中弃用的数据库引擎功能
- SQL Server 2016 (13.x) 中弃用的数据库引擎功能
弃用指南
本文介绍了 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 数据库引擎功能。 请不要在新的开发工作中使用这些功能,并尽快修改当前还在使用这些功能的应用程序。
Feature name 值在跟踪事件中显示为 ObjectName,并在性能计数器和 sys.dm_os_performance_counters 中显示为实例名称。
功能标识值会在跟踪事件中显示为 ObjectId。
备份和还原
| 已弃用功能 | 替换 | 功能名称 | 功能 ID |
|---|---|---|---|
RESTORE { DATABASE | LOG } WITH [MEDIA]PASSWORD 继续弃用。BACKUP{ DATABASE | LOG} WITH PASSWORD 和 BACKUP { DATABASE | LOG } WITH MEDIAPASSWORD 已停止使用。 |
无。 |
BACKUP DATABASE 或 BACKUP LOG WITH PASSWORDBACKUP DATABASE 或 BACKUP LOG WITH MEDIAPASSWORD |
104 103 |
兼容级别
| 已弃用功能 | 替换 | 功能名称 | 功能标识符 |
|---|---|---|---|
| 从版本 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_addremoteloginsp_addserversp_dropremoteloginsp_helpremoteloginsp_remoteoption |
用链接服务器替代远程服务器。
sp_addserver 只能与本地选项一起使用。 |
sp_addremoteloginsp_addserversp_dropremoteloginsp_helpremoteloginsp_remoteoption |
70 69 71 72 73 |
| @@remserver | 用链接服务器替代远程服务器。 | 无 | 无 |
SET REMOTE_PROC_TRANSACTIONS |
用链接服务器替代远程服务器。 | SET REMOTE_PROC_TRANSACTIONS |
110 |
Transact-SQL
| 已弃用的功能 | 替换 | 功能名称 | 功能 ID |
|---|---|---|---|
用于 INSERT、UPDATE 和 DELETE 语句的 SET ROWCOUNT |
TOP 关键词 |
SET ROWCOUNT |
109 |
| 不带括号的 HOLDLOCK 表提示。 | 使用带括号的 HOLDLOCK。 | 不带括号的 HOLDLOCK 表提示 | 167 |
SQL Server 未来版本中弃用的功能
下一个版本的 SQL Server 支持以下 SQL Server 数据库引擎功能。 具体是哪个 SQL Server 版本现在还未确定。
备份和还原
| 已弃用的功能 | 替换 | 功能名称 |
|---|---|---|
|
BACKUP { DATABASE | LOG } 记录到磁带 BACKUP { DATABASE | LOG } TO device_that_is_a_tape |
BACKUP { DATABASE | LOG } 记录到磁盘 BACKUP { DATABASE | LOG } 到 device_that_is_a_disk |
BACKUP DATABASE 或记录到磁带 |
sp_addumpdevice 'tape' |
sp_addumpdevice 'disk' |
ADDING TAPE DEVICE |
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 阿塞拜疆语_西里尔字母_90 |
数据类型
| 已弃用的功能 | 替换 | 功能名称 |
|---|---|---|
sp_addtypesp_droptype |
CREATE TYPEDROP TYPE |
sp_addtypesp_droptype |
| rowversion 数据类型的 timestamp 语法 | rowversion 数据类型语法 | TIMESTAMP |
| 在 timestamp 列中插入 null 值的功能。 | 请改用 DEFAULT 。 |
INSERT NULL转换为TIMESTAMP列 |
| “行内文本”表格选项 | 使用 varchar(max) 、nvarchar(max) 和 varbinary(max) 数据类型。 有关详细信息,请参阅 sp_tableoption。 | 表格行中的文本选项 |
| 数据类型: 文本 ntext 图像 |
使用 varchar(max) 、nvarchar(max) 和 varbinary(max) 数据类型。 | 数据类型:text、ntext,或 image |
数据库管理
| 已弃用的功能 | 替换 | 功能名称 |
|---|---|---|
sp_attach_dbsp_attach_single_file_db |
带有 FOR ATTACH 选项的 CREATE DATABASE 语句。 若要重新生成多个日志文件,如果一个或多个具有新位置,请使用 FOR ATTACH_REBUILD_LOG 此选项。 |
sp_attach_dbsp_attach_single_file_db |
sp_certify_removablesp_create_removable |
sp_detach_db |
sp_certify_removablesp_create_removable |
sp_dbremove |
DROP DATABASE |
sp_dbremove |
sp_renamedb |
MODIFY NAME 中的 ALTER DATABASE |
sp_renamedb |
数据库对象
| 已弃用的功能 | 替换 | 功能名称 |
|---|---|---|
CREATE DEFAULTDROP DEFAULTsp_bindefaultsp_unbindefault |
DEFAULT
CREATE TABLE 和 ALTER TABLE 中的关键字 |
创建_删除_默认值sp_bindefaultsp_unbindefault |
CREATE RULEDROP RULEsp_bindrule sp_unbindrule |
CHECK 在 CREATE TABLE 和 ALTER TABLE 中的关键字 |
CREATE_DROP_RULE(创建删除规则)sp_bindrulesp_unbindrule |
sp_change_users_login |
使用 ALTER USER。 |
sp_change_users_login |
sp_depends |
sys.dm_sql_referencing_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 选项 |
ALTER DATABASE WITH 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 级 type 对象添加扩展属性。 | 仅使用 Level0type = 'USER' 将扩展属性直接添加到用户或角色。 使用 Level0type = ' SCHEMA' 将扩展属性添加到级别 1 类型,例如 TABLE ,或 VIEW级别 2 类型(如 COLUMN 或 TRIGGER)。 有关详细信息,请参阅 sp_addextendedproperty。 |
EXTPROP_LEVEL0TYPEEXTPROP_LEVEL0USER |
扩展的存储过程
| 已弃用的功能 | 替换 | 功能名称 |
|---|---|---|
xp_grantloginxp_revokeloginxp_loginConfig |
使用 CREATE LOGIN使用 SERVERPROPERTY 的 DROP LOGIN IsIntegratedSecurityOnly 参数 |
xp_grantloginxp_revokeloginxp_loginconfig |
扩展存储过程编程
| 已弃用的功能 | 替换 | 功能名称 |
|---|---|---|
| srv_alloc srv_convert srv_describe srv_getbindtoken srv_引起注意 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_addextendedprocsp_dropextendedprocsp_helpextendedproc |
请改用 CLR 集成。 | sp_addextendedprocsp_dropextendedprocsp_helpextendedproc |
xp_grantloginxp_revokeloginxp_loginConfig |
使用 CREATE LOGIN使用 SERVERPROPERTY 的 DROP LOGIN IsIntegratedSecurityOnly 参数 |
xp_grantloginxp_revokeloginxp_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 “锁”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 驱动程序 | 对于链接服务器使用 SQLOLEDB |
元数据
| 已弃用的功能 | 替换 | 功能名称 |
|---|---|---|
| FILE_ID 索引键_属性 |
FILE_IDEXsys.index_columns |
FILE_ID 索引键_属性 |
原生 XML Web 服务
| 已弃用的功能 | 替换 | 功能名称 |
|---|---|---|
带有FOR SOAP选项的CREATE ENDPOINT或ALTER ENDPOINT语句。sys.endpoint_webmethods (系统终端_web方法) sys.soap_endpoints |
请改用 Windows Communications Foundation (WCF) 或 ASP.NET。 | CREATE/ALTER ENDPOINTsys.endpoint_webmethodsEXT_soap_端点 sys.soap_endpoints |
其他
| 已弃用的功能 | 替换 | 功能名称 |
|---|---|---|
| DB-Library 用于 C 语言的嵌入式 SQL |
尽管数据库引擎仍然支持来自使用 DB-Library 和嵌入式 SQL API 的现有应用程序的连接,但它不包括在使用这些 API 的应用程序上进行编程工作所需的文件或文档。 SQL Server 数据库引擎的未来版本将不再支持来自 DB-Library 或嵌入式 SQL 应用程序的连接。 请不要使用 DB-Library 或嵌入式 SQL 来开发新的应用程序。 修改现有应用程序时,删除 DB-Library 或 Embedded 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 语法 |
ALTER LOGIN WITH SET CREDENTIAL |
sp_addapprolesp_dropapprole |
CREATE APPLICATION ROLEDROP APPLICATION ROLE |
sp_addapprolesp_dropapprole |
sp_addloginsp_droplogin |
CREATE LOGINDROP LOGIN |
sp_addloginsp_droplogin |
sp_addusersp_dropuser |
CREATE USERDROP USER |
sp_addusersp_dropuser |
sp_grantdbaccesssp_revokedbaccess |
CREATE USERDROP USER |
sp_grantdbaccesssp_revokedbaccess |
sp_addrolesp_droprole |
CREATE ROLEDROP ROLE |
sp_addrolesp_droprole |
sp_approlepasswordsp_password |
ALTER APPLICATION ROLEALTER LOGIN |
sp_approlepasswordsp_password |
sp_changedbowner |
ALTER AUTHORIZATION |
sp_changedbowner |
sp_changeobjectowner |
ALTER SCHEMA 或 ALTER AUTHORIZATION |
sp_changeobjectowner |
sp_control_dbmasterkey_password |
主密钥必须存在,并且密码必须是正确的。 | sp_control_dbmasterkey_password |
sp_defaultdbsp_defaultlanguage |
ALTER LOGIN |
sp_defaultdbsp_defaultlanguage |
sp_denyloginsp_grantloginsp_revokelogin |
ALTER LOGIN DISABLECREATE LOGINDROP LOGIN |
sp_denyloginsp_grantloginsp_revokelogin |
| 用户ID | 数据库主体标识符 | 用户ID |
sp_srvrolepermissionsp_dbfixedrolepermission |
这些存储过程返回在 SQL Server 2000 (8.x)中是正确的信息。 该输出不反映在 SQL Server 2008 中实现的权限层次结构的更改。 有关详细信息,请参阅 固定服务器角色的权限。 | sp_srvrolepermissionsp_dbfixedrolepermission |
GRANT ALLDENY ALLREVOKE ALL |
GRANT、DENY 和 REVOKE 特定权限。 |
ALL 权限 |
| PERMISSIONS 内在函数 | 请改为查询 sys.fn_my_permissions 。 |
权限 |
| SETUSER | EXECUTE AS |
SETUSER |
RC4 和 DESX 加密算法 |
请使用其他算法,如 AES。 |
DESX 算法 |
服务器配置选项
| 已弃用的功能 | 替换 | 功能名称 |
|---|---|---|
| c2 审核选项默认启用跟踪选项 默认启用跟踪选项 |
启用通用准则合规性的服务器配置选项 扩展事件概述 |
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_nodessys.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 系统用户 |
兼容性视图。 有关详细信息,请参阅 系统兼容性视图。 重要提示:兼容性视图不公开 SQL Server 2005 (9.x) 中引入功能的元数据。 建议将应用程序升级为使用目录视图。 有关详细信息,请参阅 系统目录视图。 |
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_proceduressys.numbered_procedure_parameters |
无 | 编号程序 编号的过程参数 |
SQL Trace 的存储过程、函数和目录视图
| 已弃用的功能 | 替换 | 功能名称 |
|---|---|---|
sp_trace_createsp_trace_seteventsp_trace_setfiltersp_trace_setstatusfn_trace_geteventinfo fn_trace_getfilterinfo fn_trace_getinfo fn_trace_gettable sys.tracessys.trace_eventssys.trace_event_bindingssys.trace_categories(系统追踪类别) sys.trace_columns sys.trace_subclass_values (追踪子类值的系统功能) |
扩展事件概述 | sp_trace_createsp_trace_seteventsp_trace_setfiltersp_trace_setstatusfn_trace_geteventinfo fn_trace_getfilterinfo fn_trace_getinfo fn_trace_gettable sys.tracessys.trace_eventssys.trace_event_bindingssys.trace_categoriessys.trace_columnssys.trace_subclass_values |
系统视图
| 已弃用的功能 | 替换 | 功能名称 |
|---|---|---|
sys.sql_dependencies |
sys.sql_expression_dependencies |
sys.sql_dependencies |
表压缩
| 已弃用的功能 | 替换 | 功能名称 |
|---|---|---|
| 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 语句。 |
无 |
GROUP BY ALL |
使用自定义的具体情况具体处理的解决方案,并结合 UNION 或派生表。 |
GROUP BY ALL |
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 语法:MODIFY FILEGROUP READONLYMODIFY FILEGROUP READWRITE |
MODIFY FILEGROUP READ_ONLYMODIFY FILEGROUP READ_WRITE |
MODIFY FILEGROUP READONLYMODIFY FILEGROUP READWRITE |
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 数据库选项SET OFFSETS |
无。ANSI_NULLS、ANSI_PADDING 和 CONCAT_NULLS_YIELDS_NULL 始终设置为 ON。
SET OFFSETS 不可用。 |
SET ANSI_NULLS OFFSET ANSI_PADDING OFFSET CONCAT_NULL_YIELDS_NULL OFFSET OFFSETSALTER DATABASE SET ANSI_NULLS OFFALTER DATABASE SET ANSI_PADDING OFFALTER DATABASE SET CONCAT_NULL_YIELDS_NULL OFF |
SET FMTONLY |
sys.dm_exec_describe_first_result_set、 sys.dm_exec_describe_first_result_set_for_object、 sp_describe_first_result_set 和 sp_describe_undeclared_parameters。 | 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 Distributed Replay 概述 |
跟踪管理对象
| 已弃用的功能 | 替换 | 功能名称 |
|---|---|---|
| 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 |
注意
OUTPUT cookie 参数sp_setapprole当前记录为 varbinary(8000),这是正确的最大长度。 但是,目前执行返回 varbinary(50) 。 如果开发人员已将 varbinary(50) 分配给该应用程序,那么如果未来版本中 cookie 返回大小增加,该应用程序可能需要进行更改。 尽管这不是弃用问题,但之所以在本主题中提及这一点,是因为所需的应用程序调整类似。 有关详细信息,请参阅 sp_setapprole。