Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
При миграции базы данных из SQL Server в базу данных SQL Azure можно обнаружить, что базы данных SQL Server требуют повторной разработки, прежде чем их можно будет перенести. В этой статье содержатся рекомендации, которые помогут выполнить переработку и понять основные причины ее необходимости. Чтобы обнаружить несовместимость и перенести базы данных в базу данных SQL Azure, используйте Azure Data Migration Service.
Примечание.
Идентификатор Microsoft Entra ранее был известен как Azure Active Directory (Azure AD).
Обзор
Большинство функций Transact-SQL (T-SQL), которые используются приложениями, полностью поддерживаются как в Microsoft SQL Server, так и в базе данных SQL Azure. Например, основные компоненты SQL, такие как типы данных, операторы, строковые, арифметические, логические функции, функции работы с курсорами, работают одинаково и на сервере SQL Server, и в базе данных SQL. Но существует несколько различий T-SQL между элементами DDL (языка описания данных) и элементами DML (языка обработки данных), использование которых приводит к формированию частично поддерживаемых инструкций и запросов T-SQL (которые будут рассмотрены далее в этой статье).
Кроме того, некоторые функции и синтаксис не поддерживаются вообще, так как База данных SQL Azure предназначена для изоляции функций от любых зависимостей в системных базах данных и операционной системе. Таким образом, большинство функций уровня экземпляра не поддерживаются в базе данных SQL. Инструкции и параметры T-SQL недоступны, если они используются для настройки параметров уровня экземпляра, компонентов операционной системы, а также для указания конфигурации файловой системы. Если требуются такие возможности, их часто можно заменить соответствующими альтернативами, доступными в базе данных SQL или другой службе (компоненте) Azure.
Например, высокий уровень доступности встроен в Базу данных SQL Azure. Инструкции T-SQL, связанные с группами доступности, не поддерживаются базой данных SQL, а динамические административные представления, связанные с группами доступности AlwaysOn, также не поддерживаются.
Список поддерживаемых и неподдерживаемых базой данных SQL функций см. в статье "Сравнение функций" базы данных SQL Azure и Управляемого экземпляра SQL Azure. Эта страница дополняет эту статью и фокусируется на инструкциях T-SQL.
Инструкции синтаксиса T-SQL с частичными различиями
Доступны основные инструкции DDL, но расширения инструкций DDL, связанные с неподдерживаемых функций, таких как размещение файлов на диске, не поддерживаются.
- У инструкций
CREATE DATABASE
иALTER DATABASE
в SQL Server есть три десятка параметров. Эти инструкции включают параметры размещения файлов, FILESTREAM и компонента Service Broker, которые применяются только к SQL Server. Это может не иметь значения, если вы создаете базы данных в базе данных SQL перед миграцией, но если вы переносите код T-SQL, который создает базы данных, которые создают базы данных CREATE (База данных SQL Azure) с синтаксисом SQL Server в CREATE DATABASE (SQL Server T-SQL), чтобы убедиться, что все используемые параметры поддерживаются. ИнструкцияCREATE DATABASE
для Базы данных SQL Azure также располагает параметрами для цели службы и параметрами эластичного пула, которые применяются только к Базе данных SQL. - У инструкций
CREATE TABLE
иALTER TABLE
есть параметрыFILETABLE
иFILESTREAM
, которые нельзя использовать в Базе данных SQL, так как эти возможности не поддерживаются. - Создание, изменение или удаление пользовательских объектов, таких как таблицы, представления или хранимые процедуры с помощью соответствующих
CREATE
ALTER
DROP
инструкций и инструкций вmaster
базе данных на логическом сервере, не поддерживается. -
CREATE LOGIN
поддерживаются иALTER LOGIN
операторы, но не предлагают все варианты, доступные в SQL Server. Чтобы сделать базу данных более переносимой, база данных SQL рекомендует по возможности вместо имен входа использовать пользователей автономной базы данных. Дополнительные сведения см. в статье CREATE LOGIN, ALTER LOGIN и Авторизация доступа к базе данных SQL, Управляемому экземпляру SQL и Azure Synapse Analytics.
Синтаксис T-SQL, не поддерживаемый в Базе данных SQL Azure
Помимо инструкций T-SQL, связанных с неподдерживаемые функции, описанные в сравнении функций: База данных SQL Azure и Управляемый экземпляр SQL Azure, следующие инструкции и группы инструкций не поддерживаются. Таким образом, если база данных, которую нужно перенести, использует любую их следующих функций, перестройте ваше приложение, чтобы исключить эти функции и инструкции T-SQL.
- Параметры сортировки системных объектов.
- Связанные с подключением: инструкции ENDPOINT. База данных SQL не поддерживает проверка подлинности Windows, но поддерживает проверку подлинности Microsoft Entra. Это включает проверку подлинности субъектов Active Directory, федеративных с идентификатором Microsoft Entra. Дополнительные сведения см. в статье Microsoft Entra authentication for Azure SQL.
- Запросы между базами данных и между экземплярами с использованием имен, состоящих из трех или четырех элементов. Поддерживаются имена из трех элементов, ссылающихся на базу данных
tempdb
и текущую базу данных. Эластичный запрос поддерживает ссылки только для чтения на таблицы в других базах данных MSSQL. - Межбазовые цепочки владения и свойство базы данных
TRUSTWORTHY
. -
EXECUTE AS LOGIN
. Вместо этого используйтеEXECUTE AS USER
. - Расширенное управление ключами для ключей шифрования. Прозрачные ключи шифрования данных (TDE), управляемые клиентом , и главные ключи столбцов Always Encrypted можно хранить в Azure Key Vault.
- Обработка событий. Уведомления о событиях, уведомления о запросах.
- Свойства файла. Синтаксис, связанный с именем файла базы данных, размещением, размером и другими свойствами файла, которыми автоматически управляет База данных SQL.
- Высокий уровень доступности. Синтаксис, связанный с высоким уровнем доступности и восстановлением базы данных, которым управляет База данных SQL. Например, синтаксис, используемый для резервного копирования, восстановления, Always On, зеркального отображения базы данных, доставки журналов и моделей восстановления.
- Синтаксис, связанный с репликацией моментальных снимков, транзакций и слиянием, который недоступен в базе данных SQL. Поддерживаются подписки на репликацию.
- Функции:
fn_get_sql
,fn_virtualfilestats
,fn_virtualservernodes
. - Конфигурация экземпляров. Синтаксис, связанный с памятью сервера, рабочими потоками, соответствием ЦП, флагами трассировки. Вместо этого укажите уровни служб и объемы вычислительных ресурсов.
-
KILL STATS JOB
. -
OPENQUERY
,OPENDATASOURCE
и имена, состоящие из четырех элементов. - .NET Framework: интеграция среды CLR
- Семантический поиск
- Учетные данные сервера: вместо них используйте учетные данные для базы данных.
- Разрешения на уровне сервера:
GRANT
иREVOKE
DENY
разрешения уровня сервера не поддерживаются. Некоторые разрешения уровня сервера заменяются разрешениями уровня базы данных или неявно предоставляются встроенными ролями сервера. Некоторые динамические административные представления и представления каталога на уровне сервера имеют похожие представления уровня базы данных. SET REMOTE_PROC_TRANSACTIONS
SHUTDOWN
sp_addmessage
-
sp_configure
иRECONFIGURE
. Поддерживается ALTER DATABASE SCOPED CONFIGURATION. sp_helpuser
sp_migrate_user_to_contained
- агент SQL Server: синтаксис, основанный на агент SQL Server или
msdb
базе данных: оповещения, операторы, центральные серверы управления. Вместо этого используйте написание скриптов, например PowerShell. - Аудит SQL Server. Вместо этого следует использовать аудит Базы данных SQL.
- Трассировка SQL Server.
- Флаги трассировки.
- Отладка T-SQL.
- Триггеры входа или уровня сервера.
- Инструкция
USE
. Чтобы изменить контекст базы данных на другую базу данных, необходимо создать новое подключение к этой базе данных.
Полный справочник по T-SQL
Дополнительные сведения о грамматике T-SQL, использовании и примерах см. вTransact-SQL справочнике (ядро СУБД).
Сведения о тегах "Относится к"
Справочник по T-SQL содержит статьи, связанные со всеми последними версиями SQL Server. Под заголовком статьи есть панель значков, где перечислены платформы MSSQL и их применимость. Например, группы доступности появились в SQL Server 2012. Статья CREATE AVAILABILITY GROUP указывает, что эта инструкция применяется в SQL Server (начиная с версии 2012). Инструкция не применяется к SQL Server 2008, SQL Server 2008 R2, Базе данных SQL Azure, Azure Synapse Analytics или Параллельному хранилищу данных.
В некоторых случаях функция или инструкция, рассматриваемая в статье, может использоваться в продукте, однако по-разному поддерживаться в разных продуктах. Эти различия отмечаются по мере изложения материала. Например, статья CREATE TRIGGER
доступна в Базе данных SQL. Но параметр ALL SERVER
для триггеров уровня сервера указывает, что триггеры уровня сервера нельзя использовать в Базе данных SQL. Вместо них следует использовать триггеры уровня базы данных.