Устаревшие функции ядро СУБД в SQL Server 2017 (14.x)
Область применения: SQL Server 2017 (14.x) и более поздних версий
В этой статье описываются устаревшие функции SQL Server ядро СУБД, которые по-прежнему доступны в SQL Server 2017 (14.x). Не следует использовать нерекомендуемые возможности в новых приложениях.
Если функция помечена как нерекомендуемая, это означает следующее:
- Функция находится в режиме обслуживания. Новые изменения не добавляются, включая изменения, связанные с устранением взаимодействия с новыми функциями.
- Мы стараемся не удалять нерекомендуемые функции из новых выпусков, чтобы упростить обновление. Однако в редких ситуациях мы можем выбрать окончательное прекращение (удаление) функции из SQL Server, если она ограничивает будущие инновации.
- Не используйте нерекомендуемые возможности для новых задач разработки. Для существующих приложений, которые в настоящее время используют эти функции, запланируйте изменение как можно скорее.
Наблюдать за использованием нерекомендуемых функций можно с помощью событий трассировки и счетчика производительности объекта "Нерекомендуемые функции SQL Server". Дополнительные сведения см. в разделе Использование объектов 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, а в счетчиках производительности и sys.dm_os_performance_counters
— как имя экземпляра. Значению Идентификатор функции в событиях трассировки соответствует ObjectId.
Резервное копирование и восстановление
Нерекомендуемая функция | Замена | Имя функции | Идентификатор функции |
---|---|---|---|
Инструкция 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 |
Уровни совместимости
Нерекомендуемая функция | Замена | Имя функции | Идентификатор функции |
---|---|---|---|
Обновление с версии 100 (SQL Server 2008 (10.0.x) и SQL Server 2008 R2 (10.50.x)). | Когда поддержка версии SQL Server завершается, соответствующие уровни совместимости базы данных помечаются как нерекомендуемые. Однако мы будем как можно дольше поддерживать приложения, сертифицированные для работы на любом соответствующем уровне совместимости, чтобы упростить обновление. Дополнительные сведения об уровнях совместимости см. в статье Уровень совместимости инструкции ALTER DATABASE (Transact-SQL). | Уровень совместимости базы данных 100 | 108 |
Объекты базы данных
Нерекомендуемая функция | Замена | Имя функции | Идентификатор функции |
---|---|---|---|
Возможность возвращать результирующие наборы из триггеров. | нет | Возврат результатов из триггера | 12 |
Шифрование
Нерекомендуемая функция | Замена | Имя функции | Идентификатор функции |
---|---|---|---|
Шифрование с использованием алгоритмов RC4 и RC4_128 является устаревшим. В следующей версии запланировано удаление его поддержки. Расшифровка с использованием алгоритмов RC4 и RC4_128 не является нерекомендуемой. | Используйте другой алгоритм шифрования, например AES. | Устаревший алгоритм шифрования | 253 |
Использовать MD2, MD4, MD5, SHA и SHA1 не рекомендуется. | Вместо этого используйте алгоритмы SHA2_256 или SHA2_512. Старые алгоритмы по-прежнему работают, но вызывают событие нерекомендуемого алгоритма. | Нерекомендуемый хэш-алгоритм | нет |
Удаленные серверы
Нерекомендуемая функция | Замена | Имя функции | Идентификатор функции |
---|---|---|---|
sp_addremotelogin sp_addserver, хранимая процедура sp_dropremotelogin sp_helpremotelogin хранимая процедура sp_remoteoption |
Замените удаленные серверы связанными серверами. Процедуру sp_addserver можно использовать только с параметром local. | sp_addremotelogin sp_addserver, хранимая процедура sp_dropremotelogin sp_helpremotelogin хранимая процедура sp_remoteoption |
70 69 71 72 73 |
@@remserver | Замените удаленные серверы связанными серверами. | нет | нет |
SET REMOTE_PROC_TRANSACTIONS | Замените удаленные серверы связанными серверами. | SET REMOTE_PROC_TRANSACTIONS | 110 |
Transact-SQL
Нерекомендуемая функция | Замена | Имя функции | Идентификатор функции |
---|---|---|---|
SET ROWCOUNT для инструкций INSERT, UPDATEи DELETE . | Ключевое слово TOP | SET ROWCOUNT | 109 |
Табличная подсказка HOLDLOCK без скобок. | Используйте HOLDLOCK со скобками. | Табличная подсказка HOLDLOCK без скобок. | 167 |
Функции, не рекомендуемые в будущей версии SQL Server
Перечисленные ниже функции ядра СУБД SQL Server поддерживаются в следующей версии SQL Server. С какой именно версии SQL Server, пока не определено.
Резервное копирование и восстановление
Нерекомендуемая функция | Замена | Имя функции |
---|---|---|
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 или LOG TO TAPE |
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 Lithuanian_Classic SQL_AltDiction_CP1253_CS_AS |
Нет. Эти параметры сортировки существуют в SQL Server 2005 (9.x), но их нельзя увидеть с помощью функции fn_helpcollations. | Korean_Wansung_Unicode Lithuanian_Classic SQL_AltDiction_CP1253_CS_AS |
Хинди Macedonian |
Эти параметры сортировки существуют в SQL Server 2005 (9.x) и более поздних версий, но их нельзя увидеть с помощью функции fn_helpcollations. Вместо них следует использовать Macedonian_FYROM_90 и Indic_General_90. | Хинди Macedonian |
Azeri_Latin_90 Azeri_Cyrilllic_90 |
Azeri_Latin_100 Azeri_Cyrilllic_100 |
Azeri_Latin_90 Azeri_Cyrilllic_90 |
Типы данных
Нерекомендуемая функция | Замена | Имя функции |
---|---|---|
sp_addtype хранимая процедура sp_droptype |
СОЗДАТЬ ТИП DROP TYPE |
sp_addtype хранимая процедура sp_droptype |
Синтаксисtimestamp для типа данных rowversion . | Синтаксис типа данныхrowversion . | TIMESTAMP |
Возможность вставлять значения NULL в столбцы типа timestamp . | Используйте вместо этого DEFAULT. | INSERT NULL в столбцах TIMESTAMP. |
Параметр таблицы «text in row». | Используйте типы данных varchar(max), nvarchar(max) и varbinary(max). Дополнительные сведения см. в статье sp_tableoption (Transact-SQL). | Параметр таблицы «text in row» |
Типы данных: text ntext Изображение |
Используйте типы данных varchar(max), nvarchar(max) и varbinary(max). | Типы данных: text, ntext или image |
Управление базами данных
Нерекомендуемая функция | Замена | Имя функции |
---|---|---|
sp_attach_db sp_attach_single_file_db |
Инструкция CREATE DATABASE с параметром FOR ATTACH. Чтобы перестроить несколько файлов журнала, если один или более файлов изменили расположение, используйте параметр 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 | DROP DATABASE | sp_dbremove |
sp_renamedb | Параметр MODIFY NAME в инструкции ALTER DATABASE. | sp_renamedb |
Объекты базы данных
Нерекомендуемая функция | Замена | Имя функции |
---|---|---|
CREATE DEFAULT DROP DEFAULT sp_bindefault хранимая процедура sp_unbindefault |
Ключевое слово DEFAULT в инструкциях CREATE TABLE и ALTER TABLE. | CREATE_DROP_DEFAULT sp_bindefault хранимая процедура sp_unbindefault |
CREATE RULE DROP RULE sp_bindrule sp_unbindrule |
Ключевое слово CHECK в инструкциях CREATE TABLE и ALTER TABLE. | CREATE_DROP_RULE sp_bindrule sp_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 | ЧРЕЗВЫЧАЙНЫЕ СИТУАЦИИ } | sp_resetstatus |
Параметр TORN_PAGE_DETECTION инструкции ALTER DATABASE. | Параметр PAGE_VERIFY TORN_PAGE_DETECTION инструкции ALTER DATABASE. | ALTER DATABASE WITH TORN_PAGE_DETECTION |
DBCC
Нерекомендуемая функция | Замена | Имя функции |
---|---|---|
DBCC DBREINDEX | Параметр REBUILD инструкции ALTER INDEX. | DBCC DBREINDEX |
DBCC INDEXDEFRAG | Параметр REORGANIZE инструкции ALTER INDEX | DBCC INDEXDEFRAG |
DBCC SHOWCONTIG | sys.dm_db_index_physical_stats | DBCC SHOWCONTIG |
DBCC PINTABLE DBCC UNPINTABLE |
Данный параметр не делает ничего. | DBCC [UN]PINTABLE |
Расширенные свойства
Нерекомендуемая функция | Замена | Имя функции |
---|---|---|
Level0type = "type" и Level0type = "USER", чтобы добавить расширенные свойства к объектам типа level-1 или level-2. | Используйте Level0type = 'USER', только чтобы добавить расширенное свойство напрямую роли или пользователю. Используйте Level0type = 'SCHEMA', чтобы добавить расширенное свойство к типам level-1, таким как TABLE или VIEW, или типам level-2, таким как COLUMN или TRIGGER. Дополнительные сведения см. в разделе sp_addextendedproperty (Transact-SQL). |
EXTPROP_LEVEL0TYPE EXTPROP_LEVEL0USER |
Расширенные хранимые процедуры
Нерекомендуемая функция | Замена | Имя функции |
---|---|---|
xp_grantlogin xp_revokelogin xp_loginConfig |
Используйте инструкцию CREATE LOGIN. Используйте аргумент DROP LOGIN IsIntegratedSecurityOnly в 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 |
Используйте вместо этого интеграцию со средой CLR. | XP_API |
sp_addextendedproc sp_dropextendedproc sp_helpextendedproc |
Используйте вместо этого интеграцию со средой CLR. | sp_addextendedproc sp_dropextendedproc sp_helpextendedproc |
xp_grantlogin xp_revokelogin xp_loginConfig |
Используйте инструкцию CREATE LOGIN. Используйте аргумент DROP LOGIN IsIntegratedSecurityOnly в SERVERPROPERTY. |
xp_grantlogin xp_revokelogin xp_loginconfig |
Высокая доступность
Нерекомендуемая функция | Замена | Имя функции |
---|---|---|
зеркальное отображение базы данных | Группы доступности AlwaysOn Если выпуск SQL Server не поддерживает группы доступности Always On, используйте доставку журналов. |
DATABASE_MIRRORING |
Параметры индекса
Нерекомендуемая функция | Замена | Имя функции |
---|---|---|
sp_indexoption | ALTER INDEX | sp_indexoption |
Синтаксис CREATE TABLE, ALTER TABLE или CREATE INDEX без заключения параметров в скобки. | Перепишите инструкции для использования текущего синтаксиса. | INDEX_OPTION |
Параметры экземпляра
Нерекомендуемая функция | Замена | Имя функции |
---|---|---|
Параметр 'allow updates' хранимой процедуры sp_configure. | Системные таблицы теперь недоступны для обновления. Параметр не делает ничего. | sp_configure 'allow updates' |
Параметры хранимой процедуры sp_configure: 'locks' 'open objects' 'set working set size' |
Теперь настраивается автоматически. Параметр не делает ничего. | sp_configure 'locks' sp_configure 'open objects' sp_configure 'set working set size' |
Параметр 'priority boost' хранимой процедуры sp_configure. | Системные таблицы теперь недоступны для обновления. Параметр не делает ничего. Используйте вместо него параметр Windows start /high ... program.exe. | sp_configure 'priority boost' |
Параметр 'remote proc trans' хранимой процедуры sp_configure. | Системные таблицы теперь недоступны для обновления. Параметр не делает ничего. | sp_configure 'remote proc trans' |
Связанные серверы
Нерекомендуемая функция | Замена | Имя функции |
---|---|---|
Указание поставщика SQLOLEDB для связанных серверов. | Microsoft OLE DB Driver (MSOLEDBSQL) для SQL Server | SQLOLEDB для связанных серверов |
Метаданные
Нерекомендуемая функция | Замена | Имя функции |
---|---|---|
FILE_ID INDEXKEY_PROPERTY |
FILE_IDEX sys.index_columns |
FILE_ID INDEXKEY_PROPERTY |
Собственные веб-службы с поддержкой XML
Нерекомендуемая функция | Замена | Имя функции |
---|---|---|
Инструкция CREATE ENDPOINT или ALTER ENDPOINT с параметром FOR SOAP. sys.endpoint_webmethods sys.soap_endpoints |
Вместо этого следует использовать технологию WCF (Windows Communications Foundation) или ASP.NET. | CREATE/ALTER ENDPOINT sys.endpoint_webmethods EXT_soap_endpoints sys.soap_endpoints |
Другие
Нерекомендуемая функция | Замена | Имя функции |
---|---|---|
DB-Library Embedded SQL для языка C. |
Хотя ядро СУБД до сих пор поддерживает соединения из существующих приложений, использующих API DB-Library и Embedded SQL, файлы или документация, необходимые для разработки приложений с помощью этих API, не предоставляются. В следующей версии ядра СУБД SQL Server не будут поддерживаться соединения приложений DB-Library или Embedded SQL. Не используйте DB-Library или Embedded SQL для разработки новых приложений. Удалите все зависимости от DB-Library или Embedded SQL при изменении существующих приложений. Вместо этих API используйте пространство имен SQLClient или такой API, как ODBC. SQL Server 2019 (15.x) не включает библиотеку DLL DB-Library, необходимую для выполнения этих приложений. Для запуска приложений DB-Library или Embedded SQL необходимо иметь доступ к DLL-библиотеке DB-Library для SQL Server 6.5, SQL Server 7.0 или SQL Server 2000 (8.x). | нет |
Безопасность
Нерекомендуемая функция | Замена | Имя функции |
---|---|---|
Синтаксис ALTER LOGIN WITH SET CREDENTIAL | Заменен новым синтаксисом ALTER LOGIN ADD и DROP CREDENTIAL | 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 |
СОЗДАНИЕ ПОЛЬЗОВАТЕЛЯ DROP USER |
sp_adduser sp_dropuser |
sp_grantdbaccess sp_revokedbaccess |
СОЗДАНИЕ ПОЛЬЗОВАТЕЛЯ 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 или ALTER AUTHORIZATION | sp_changeobjectowner |
sp_control_dbmasterkey_password | Необходим главный ключ и правильный пароль. | 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 |
Эти хранимые процедуры возвращают правильные сведения в SQL Server 2000 (8.x). Выходные данные не отражают изменений в иерархии разрешений, реализованной в SQL Server 2008. Дополнительные сведения см. в разделе Разрешения предопределенных ролей сервера. | sp_srvrolepermission sp_dbfixedrolepermission |
GRANT ALL DENY ALL REVOKE ALL |
Специальные разрешения GRANT, DENY и REVOKE. | Разрешение ALL. |
Внутренняя функция PERMISSIONS. | Запросите sys.fn_my_permissions. | РАЗРЕШЕНИЯ |
SETUSER | EXECUTE AS | SETUSER |
Алгоритмы шифрования RC4 и DESX | Используйте другой алгоритм, например AES. | Алгоритм DESX |
Параметры конфигурации сервера
Нерекомендуемая функция | Замена | Имя функции |
---|---|---|
параметр "c2 audit" параметр "default trace enabled" default trace enabled, параметр |
Параметр конфигурации сервера common criteria compliance enabled Расширенные события |
sp_configure 'c2 audit mode' sp_configure 'default trace enabled' |
Классы модели объектов SMO
Нерекомендуемая функция | Замена | Имя функции |
---|---|---|
Microsoft.SQLServer. Management.Smo.Information class Microsoft.SQLServer. Management.Smo.Settings class Microsoft.SQLServer.Management. Smo.DatabaseOptions class Microsoft.SqlServer.Management.Smo. DatabaseDdlTrigger.NotForReplication свойство |
Microsoft.SqlServer. Management.Smo.Server class *Класс Microsoft.SqlServer. Management.Smo.Server Microsoft.SqlServer. Management.Smo.Database class нет |
нет |
Агент 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 fn_servershareddrives |
sys.dm_os_cluster_nodes sys.dm_io_cluster_shared_drives |
fn_virtualservernodes fn_servershareddrives |
fn_get_sql | sys.dm_exec_sql_text | fn_get_sql |
sp_lock | sys.dm_tran_locks | sp_lock |
Системные таблицы
Нерекомендуемая функция | Замена | Имя функции |
---|---|---|
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 |
Представления совместимости. Дополнительные сведения см. в разделе Системные представления совместимости (Transact-SQL). Важно! Представления совместимости не предоставляют доступ к метаданным для возможностей, которые были реализованы в SQL Server 2005 (9.x). Рекомендуется обновить приложения, чтобы они использовали представления каталога. Дополнительные сведения см. в разделе Системные представления каталога (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 |
нет | numbered_procedures 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 | sys.sql_expression_dependencies | sys.sql_dependencies |
Сжатие таблицы
Нерекомендуемая функция | Замена | Имя функции |
---|---|---|
Использование формата хранения vardecimal. | Формат хранения Vardecimal устарел. Средство сжатия данных в SQL Server 2019 (15.x) обеспечивает упаковку десятичных значений и данных других типов. Вместо формата хранения vardecimal рекомендуется использовать сжатие данных. | Формат хранения vardecimal |
Используйте процедуру the 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 |
Текстовые указатели
Нерекомендуемая функция | Замена | Имя функции |
---|---|---|
WRITETEXT UPDATETEXT READTEXT |
нет | UPDATETEXT или WRITETEXT READTEXT |
TEXTPTR() TEXTVALID() |
нет | TEXTPTR TEXTVALID |
Transact-SQL
Нерекомендуемая функция | Замена | Имя функции |
---|---|---|
Последовательность вызова функций :: |
Заменено на SELECT список_столбцов FROM sys.<имя_функции>(). Например, замените SELECT * FROM ::fn_virtualfilestats(2,1) на SELECT * FROM sys.fn_virtualfilestats(2,1) . |
синтаксис вызова функции «::» |
Ссылки на столбцы с трех- и четырехкомпонентными именами. | Использование двухкомпонентных имен совместимо со стандартом. | Имя столбца, состоящее более чем из двух компонентов |
Строка, заключенная в кавычки, использовалась как псевдоним столбца для выражения в списке SELECT: 'string_alias' = выражение |
expression [AS] псевдоним_столбца expression [AS] [псевдоним_столбца] expression [AS] "псевдоним_столбца" expression [AS] 'псевдоним_столбца' column_alias = выражение |
Строковые литералы в качестве псевдонимов столбцов |
Нумерованные процедуры | Нет. Не используйте. | ProcNums |
Синтаксисtable_name.index_name в инструкции DROP INDEX | Синтаксисindex_name ON table_name в инструкции DROP INDEX. | 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 в качестве значения по умолчанию. |
Использование пробела в качестве разделителя табличных подсказок. | В качестве разделителя отдельных табличных подсказок используйте запятую. | Несколько табличных указаний без запятых |
Список выбора статистического индексированного представления должен содержать функцию COUNT_BIG (*) в режиме совместимости 90. | Вместо этого следует использовать функцию COUNT_BIG. | Индексированное представление выбирает список без COUNT_BIG(*) |
Косвенное применение табличных указаний для вызова функций с несколькими инструкциями, возвращающих табличное значение (TVF), через представление. | Нет. | Косвенные подсказки возвращающих табличное значение функций. |
Синтаксис ALTER DATABASE: MODIFY FILEGROUP READONLY MODIFY FILEGROUP READWRITE |
MODIFY FILEGROUP READ_ONLY MODIFY FILEGROUP READ_WRITE |
MODIFY FILEGROUP READONLY MODIFY 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 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 |
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 |
Указание параметра NOLOCK или READUNCOMMITTED в предложении FROM инструкции UPDATE или DELETE. | Удалите табличные указания NOLOCK и READUNCOMMITTED из предложения FROM. | NOLOCK или READUNCOMMITTED в инструкции UPDATE или DELETE |
Указание табличных подсказок без ключевого слова WITH. | Использование ключевого слова WITH. | Табличное указание без ключевого слова WITH |
INSERT_HINTS | INSERT_HINTS |
Инструменты
Нерекомендуемая функция | Замена | Имя функции |
---|---|---|
Приложение SQL Server Profiler для перехвата трассировки | Использование профилировщика расширенных событий, встроенного в среду SQL Server Management Studio. | Профилировщик SQL Server |
Воспроизведение трассировки с помощью приложения SQL Server Profiler | Распределенное воспроизведение SQL Server |
Объекты TMO
Нерекомендуемая функция | Замена | Имя функции |
---|---|---|
Пространство имен Microsoft.SqlServer.Management.Trace (содержит API для объектов Trace и Replay в SQL Server) | Настройка трассировки: Microsoft.SqlServer.Management.XEvent Чтение трассировки: Microsoft.SqlServer.XEvent.Linq Воспроизведение трассировки: отсутствует |
XML
Нерекомендуемая функция | Замена | Имя функции |
---|---|---|
Создание встроенных схем XDR | Директива XMLDATA для параметра XML FOR является нерекомендуемой. В режимах RAW и AUTO следует использовать создание XSD-схем. В режиме EXPLICT для директивы XMLDATA замены нет. | XMLDATA |
Примечание.
Параметр OUTPUT куки-файла для инструкции sp_setapprole в настоящее время описан в документации как varbinary(8000) , что верно определяет его максимальную длину. Однако текущая реализация возвращает параметр varbinary(50). Если разработчик выделил значение varbinary(50) , может потребоваться внести изменения в приложения на случай изменения размера возвращаемых куки-файлов в будущих выпусках. Хотя эта проблема не связана с устареванием, она описана в данном разделе, так как требует внесения аналогичных изменений в приложения. Дополнительные сведения см. в sp_setapprole.