Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к: SQL Server 2017 (14.x) и более поздних версий
SQL Server 2017 (14.x) устарел:
- Службы качества данных (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 ядро СУБД, которые по-прежнему доступны в SQL Server 2017 (14.x). Не следует использовать нерекомендуемые возможности в новых приложениях.
Если функция помечена как нерекомендуемая, это означает следующее:
- Функция находится в режиме обслуживания. Никакие новые изменения не вносятся, включая изменения, связанные с обеспечением совместимости с новыми функциями.
- Мы стараемся не удалять нерекомендуемые функции из новых выпусков, чтобы упростить обновление. Однако в редких ситуациях мы можем выбрать окончательное прекращение (удаление) функции из SQL Server, если она ограничивает будущие инновации.
- Не используйте нерекомендуемые возможности для новых задач разработки. Для существующих приложений, которые в настоящее время используют эти функции, запланируйте изменение как можно скорее.
Использование устаревших функций можно отслеживать с помощью счётчика производительности объекта SQL Server Deprecated Features и событий трассировки. Дополнительные сведения см. в разделе Использование объектов 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 [MEDIA]WITH по-прежнему не рекомендуется. PASSWORDBACKUP{ } DATABASE и | { LOGWITH PASSWORDBACKUPDATABASE | 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 |
Объекты базы данных
| Нерекомендуемая функция | Замена | Имя функции | Идентификатор функции |
|---|---|---|---|
| Возможность возвращать результирующие наборы из триггеров. | нет | Возврат результатов из триггера | 12 |
Шифрование
| Нерекомендуемая функция | Замена | Имя функции | Идентификатор функции |
|---|---|---|---|
| Шифрование с использованием алгоритмов RC4 и RC4_128 является устаревшим. В следующей версии запланировано удаление его поддержки. Расшифровка с использованием алгоритмов RC4 и RC4_128 не является нерекомендуемой. | Используйте другой алгоритм шифрования, например AES. | Устаревший алгоритм шифрования | 253 |
| Использовать MD2, MD4, MD5, SHA и SHA1 не рекомендуется. | Вместо этого используйте алгоритмы SHA2_256 или SHA2_512. Старые алгоритмы по-прежнему работают, но генерируют событие устаревания. | Нерекомендуемый хэш-алгоритм | нет |
Удаленные серверы
| Нерекомендуемая функция | Замена | Имя функции | Идентификатор функции |
|---|---|---|---|
sp_addremoteloginsp_addserversp_dropremoteloginsp_helpremoteloginsp_remoteoption |
Замените удаленные серверы связанными серверами.
sp_addserver можно использовать только с параметром local. |
sp_addremoteloginsp_addserversp_dropremoteloginsp_helpremoteloginsp_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 } НА ЛЕНТУ BACKUP { | DATABASE LOG } TO device_that_is_a_tape |
BACKUP { DATABASE | ЗАПИСАТЬ В ЖУРНАЛ } НА ДИСК BACKUP { | DATABASE LOG } TO 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 |
Параметры сортировки
| Нерекомендуемая функция | Замена | Имя функции |
|---|---|---|
| Корейский_Вансунг_Юникод Литовский_Классик SQL_AltDiction_CP1253_CS_AS |
Нет. Эти параметры сортировки существуют в SQL Server 2005 (9.x), но их нельзя увидеть с помощью функции fn_helpcollations. | Корейский_Вансунг_Юникод Литовский_Классик SQL_AltDiction_CP1253_CS_AS |
| Хинди Македонец |
Эти параметры сортировки существуют в SQL Server 2005 (9.x) и более поздних версий, но их нельзя увидеть с помощью функции fn_helpcollations. Вместо них следует использовать Macedonian_FYROM_90 и Indic_General_90. | Хинди Македонец |
| Azeri_Latin_90 Azeri_Cyrillic_90 |
Azeri_Latin_100 Азербайджанский_Кириллица_100 |
Azeri_Latin_90 Azeri_Cyrillic_90 |
Типы данных
| Нерекомендуемая функция | Замена | Имя функции |
|---|---|---|
sp_addtypesp_droptype |
CREATE TYPEDROP TYPE |
sp_addtypesp_droptype |
| Синтаксисtimestamp для типа данных rowversion . | Синтаксис типа данных rowversion | TIMESTAMP |
| Возможность вставлять значения NULL в столбцы типа timestamp . | Используйте 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 |
инструкция CREATE DATABASE с параметром FOR ATTACH. Чтобы перестроить несколько файлов журнала, если одно или несколько имеют новое расположение, используйте этот 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 |
СОЗДАТЬ_УДАЛИТЬ_ПРАВИЛО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 (процедура для сброса статуса) |
TORN_PAGE_DETECTION параметр ALTER DATABASE |
PAGE_VERIFY TORN_PAGE_DETECTION параметр ALTER DATABASE |
ALTER DATABASE WITH TORN_PAGE_DETECTION |
DBCC
| Нерекомендуемая функция | Замена | Имя функции |
|---|---|---|
| DBCC DBREINDEX | параметр ALTER INDEXREBUILD. |
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' для добавления расширенного свойства к типам уровня 1, таким как TABLE или VIEWили типы уровня 2, например COLUMN или TRIGGER. Дополнительные сведения см. sp_addextendedproperty. |
EXTPROP_LEVEL0TYPEEXTPROP_LEVEL0USER |
Расширенные хранимые процедуры
| Нерекомендуемая функция | Замена | Имя функции |
|---|---|---|
xp_grantloginxp_revokeloginxp_loginConfig |
Используйте CREATE LOGINИспользуйте аргумент DROP LOGIN IsIntegratedSecurityOnly в SERVERPROPERTY |
xp_grantloginxp_revokeloginxp_loginconfig |
Программирование расширенных хранимых процедур
| Нерекомендуемая функция | Замена | Имя функции |
|---|---|---|
| срв_аллок srv_преобразовать srv_описание srv_getbindtoken srv_внимание_получено обработчик_сообщений_srv srv_paramdata информация о параметре сервера srv_paramlen srv_parammaxlen srv_paramname (имя_параметра_сервера) srv_paramnumber Параметр сервера srv_paramsetoutput статус_параметра_сервера тип параметра сервера srv_pfield srv_pfieldex srv_rpcdb srv_rpcname срв_рпцномер параметры_сервера_rpc 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Используйте аргумент DROP LOGIN IsIntegratedSecurityOnly для SERVERPROPERTY |
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 "remote proc trans" |
Связанные серверы
| Нерекомендуемая функция | Замена | Имя функции |
|---|---|---|
| Указание поставщика SQLOLEDB для связанных серверов. | Драйвер Microsoft OLE DB для SQL Server | SQLOLEDB для связанных серверов |
Метаданные
| Нерекомендуемая функция | Замена | Имя функции |
|---|---|---|
| ИДЕНТИФИКАТОР_ФАЙЛА СВОЙСТВО_КЛЮЧА_ИНДЕКСА |
FILE_IDEXsys.index_columns |
ИДЕНТИФИКАТОР_ФАЙЛА СВОЙСТВО_КЛЮЧА_ИНДЕКСА |
Собственные веб-службы с поддержкой XML
| Нерекомендуемая функция | Замена | Имя функции |
|---|---|---|
Оператор CREATE ENDPOINT или ALTER ENDPOINT с параметром FOR SOAP.sys.endpoint_webmethods sys.soap_endpoints |
Вместо этого следует использовать технологию WCF (Windows Communications Foundation) или ASP.NET. | CREATE/ALTER ENDPOINTsys.endpoint_webmethodsEXT_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 или внедренного 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_addapprolesp_dropapprole |
CREATE APPLICATION ROLEDROP APPLICATION ROLE |
sp_addapprolesp_dropapprole |
sp_addloginsp_droplogin |
CREATE LOGINDROP LOGIN |
sp_addloginsp_droplogin (команда для удаления логина в SQL Server) |
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_ГЛАВНОГО_ОБЪЕКТА_БАЗЫ_ДАННЫХ | ИД_ПОЛЬЗОВАТЕЛЯ |
sp_srvrolepermissionsp_dbfixedrolepermission |
Эти хранимые процедуры возвращают правильные сведения в SQL Server 2000 (8.x). Выходные данные не отражают изменений в иерархии разрешений, реализованной в SQL Server 2008. Дополнительные сведения см. в разделе Разрешения предопределенных ролей сервера. | sp_srvrolepermissionsp_dbfixedrolepermission |
GRANT ALLDENY ALLREVOKE ALL |
разрешения для GRANT, DENY и REVOKE. |
Полный доступ |
| встроенная функция PERMISSIONS | Вместо этого выполните запрос sys.fn_my_permissions . |
РАЗРЕШЕНИЯ |
| SETUSER | EXECUTE AS |
SETUSER |
Алгоритмы rc4 и DESX шифрования |
Используйте другой алгоритм, например AES. |
DESX алгоритм |
Параметры конфигурации сервера
| Нерекомендуемая функция | Замена | Имя функции |
|---|---|---|
| параметр «аудит C2»; параметр «трассировка по умолчанию включена» параметр включённой по умолчанию трассировки |
Параметр конфигурации сервера с включённым соответствием Common Criteria Обзор расширенных событий |
sp_configure Режим аудита c2sp_configure "Включена трассировка по умолчанию" |
Классы SMO
| Нерекомендуемая функция | Замена | Имя функции |
|---|---|---|
| Microsoft.SQLServer. Management.Smo.Information класс Microsoft.SQLServer. Management.Smo.Settings класс Microsoft.SQLServer.Management. Smo.DatabaseOptions класс 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 fn_servershareddrives |
sys.dm_os_cluster_nodessys.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 системные ограничения syscurconfigs sysdatabases sysdepends sysdevices sysfilegroups системные файлы sysforeignkeys sysfulltextcatalogs sysindexes sysindexkeys syslockinfo syslogins системные участники системные сообщения sysobjects sysoledbusers sysopentapes sysperfinfo syspermissions системные процессы sysprotects sysreferences sysremotelogins системные серверы systypes Системные пользователи |
Представления совместимости. Дополнительные сведения см. в разделе "Представления совместимости системы". Важно! Представления совместимости не предоставляют доступ к метаданным для возможностей, которые были реализованы в SQL Server 2005 (9.x). Рекомендуется обновить приложения, чтобы они использовали представления каталога. Дополнительные сведения см. в представлениях системного каталога. |
sysaltfiles syscacheobjects syscolumns (системные столбцы) syscomments sysconfigures системные ограничения syscurconfigs sysdatabases sysdepends sysdevices sysfilegroups системные файлы sysforeignkeys sysfulltextcatalogs sysindexes sysindexkeys syslockinfo syslogins системные участники системные сообщения sysobjects sysoledbusers sysopentapes sysperfinfo syspermissions системные процессы sysprotects sysreferences sysremotelogins системные серверы 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 TEXTVALID |
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] псевдоним_столбца выражение [AS] [псевдоним_столбца] expression [AS] "column_alias" выражение [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), через представление. | Нет. | Косвенные подсказки для 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 |
Указание NOLOCK или READUNCOMMITTED в части FROM инструкции UPDATE или DELETE |
Удалите табличные указания NOLOCK или READUNCOMMITTED из предложения FROM. |
NOLOCK или READUNCOMMITTED в UPDATE или DELETE |
Указание подсказок таблиц без использования ключевого слова WITH. |
Используйте WITH. |
Указание таблицы без WITH |
| ВСТАВИТЬ_ПОДСКАЗКИ | ВСТАВИТЬ_ПОДСКАЗКИ |
Инструменты
| Нерекомендуемая функция | Замена | Имя функции |
|---|---|---|
| Приложение SQL Server Profiler для перехвата трассировки | Использование профилировщика расширенных событий, встроенного в среду SQL Server Management Studio. | Профилировщик SQL Server |
| Воспроизведение трассировки с помощью приложения SQL Server Profiler | Обзор распределенного воспроизведения SQL Server |
Объекты управления трассировкой
| Нерекомендуемая функция | Замена | Имя функции |
|---|---|---|
| Пространство имен Microsoft.SqlServer.Management.Trace (содержит API для объектов Trace и Replay в SQL Server) | Настройка трассировки: Microsoft.SqlServer.Management.XEvent Чтение трассировки: Microsoft.SqlServer.XEvent.Linq Воспроизведение трассировки: отсутствует |
XML
| Нерекомендуемая функция | Замена | Имя функции |
|---|---|---|
| Встроенная генерация схем XDR | Директива XMLDATA для FOR XML параметра устарела. Используйте генерацию XSD в режимах RAW и AUTO. В режиме EXPLICT нет замены директивы XMLDATA. |
XMLDATA |
Примечание.
В настоящее время параметр cookie OUTPUT для sp_setapprole задокументирован как varbinary(8000), что соответствует правильной максимальной длине. Однако текущая реализация возвращает параметр varbinary(50). Если разработчик выделил значение varbinary(50) , может потребоваться внести изменения в приложения на случай изменения размера возвращаемых куки-файлов в будущих выпусках. Хотя эта проблема не связана с устареванием, она описана в данном разделе, так как требует внесения аналогичных изменений в приложения. Дополнительные сведения см. в разделе sp_setapprole.