Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Таблицы, оптимизированные для памяти, и нативно скомпилированные хранимые процедуры не поддерживают полный функционал Transact-SQL, который поддерживается таблицами на дисковой основе и интерпретируемыми Transact-SQL хранимыми процедурами. При попытке использовать одну из неподдерживаемых функций сервер возвращает ошибку.
Текст сообщения об ошибке упоминает тип оператора Transact-SQL (компонент, операция, вариант, например) и имя компонента или ключевого слова Transact-SQL. Большинство неподдерживаемых функций возвращают ошибку 10794 с текстом сообщения об ошибке, указывающим неподдерживаемую функцию. В следующих таблицах перечислены Transact-SQL функции и ключевые слова, которые могут отображаться в тексте сообщения об ошибке, а также корректирующее действие для устранения ошибки.
Подробности об поддерживаемых функциях с оптимизированной для памяти таблицей и хранимыми процедурами, скомпилированными в машинный код, см. в следующих статьях.
Базы данных, использующие In-Memory OLTP
В следующей таблице перечислены Transact-SQL функции и ключевые слова, которые могут отображаться в тексте сообщения об ошибке, связанной с In-Memory базой данных OLTP.
Тип | Имя | Резолюция |
---|---|---|
Вариант | АВТО_ЗАКРЫТИЕ | Параметр базы данных AUTO_CLOSE=ON не поддерживается базами данных с MEMORY_OPTIMIZED_DATA файловой группой. |
Вариант | Присоединить_журнал_восстановления | Параметр CREATE database ATTACH_REBUILD_LOG не поддерживается для баз данных с файловой группой данных MEMORY_OPTIMIZED_DATA. |
Функция | СНИМОК СОСТОЯНИЯ БАЗЫ ДАННЫХ | Создание моментальных снимков не поддерживается для баз данных с файловой группой MEMORY_OPTIMIZED_DATA. |
Функция | Репликация с помощью sync_method "моментальный снимок базы данных" или "характеристика моментального снимка базы данных" | Репликация с помощью sync_method "моментальный снимок базы данных" или "тип моментального снимка базы данных" не поддерживается для баз данных с файловой группой MEMORY_OPTIMIZED_DATA. |
Функция | DBCC CHECKDB - команда проверки целостности базы данных в SQL Server. DBCC CHECKTABLE |
DBCC CHECKDB пропускает оптимизированные для памяти таблицы в базе данных. DBCC CHECKTABLE не сможет завершиться успешно для таблиц, оптимизированных для памяти. |
таблицы Memory-Optimized
В следующей таблице перечислены функции Transact-SQL и ключевые слова, которые могут отображаться в тексте сообщения об ошибке, связанной с таблицей с оптимизированной памятью, а также действия по исправлению ошибки.
Тип | Имя | Резолюция |
---|---|---|
Функция | НА | Оптимизированные для памяти таблицы нельзя поместить в файловую группу или схему секционирования. Удалите оператор ON из инструкции CREATE TABLE . |
Тип данных | Имя типа данных | Указанный тип данных не поддерживается. Замените тип одним из поддерживаемых типов данных. Дополнительные сведения см. в разделе "Поддерживаемые типы данных". |
Функция | Вычисляемые столбцы | Вычисляемые столбцы не поддерживаются для оптимизированных для памяти таблиц. Удалите вычисляемые столбцы из инструкции CREATE TABLE . |
Функция | Репликация | Репликация не поддерживается в таблицах, оптимизированных для памяти. |
Функция | FILESTREAM | Хранилище FILESTREAM не поддерживает столбцы оптимизированных для памяти таблиц. Удалите ключевое FILESTREAM слово из определения столбца. |
Функция | РЕДКИЙ | Столбцы таблиц, оптимизированных для памяти, не могут быть определены как SPARSE. Удалите ключевое SPARSE слово из определения столбца. |
Функция | ROWGUIDCOL | Параметр ROWGUIDCOL не поддерживается для столбцов оптимизированных для памяти таблиц. Удалите ключевое ROWGUIDCOL слово из определения столбца. |
Функция | ВНЕШНИЙ КЛЮЧ | Ограничения FOREIGN KEY не поддерживаются для таблиц, оптимизированных для памяти. Удалите ограничение из определения таблицы. Сведения о том, как устранить отсутствие поддержки ограничений, см. в разделе "Миграция проверок" и "Ограничения внешнего ключа". |
Функция | ПРОВЕРКА | Ограничения CHECK не поддерживаются для таблиц, оптимизированных для памяти. Удалите ограничение из определения таблицы. Сведения о том, как устранить отсутствие поддержки ограничений, см. в разделе "Миграция проверок" и "Ограничения внешнего ключа". |
Функция | УНИКАЛЬНЫЙ | Ограничения UNIQUE не поддерживаются для таблиц, оптимизированных для памяти. Удалите ограничение из определения таблицы. Сведения о том, как устранить отсутствие поддержки ограничений, см. в разделе "Миграция проверок" и "Ограничения внешнего ключа". |
Функция | Хранилище данных формата COLUMNSTORE (колоночное хранилище) | Индексы COLUMNSTORE не поддерживаются в таблицах, оптимизированных для памяти. Укажите индекс NONCLUSTERED или NONCLUSTERED HASH вместо этого. |
Функция | кластеризованный индекс | Укажите некластеризованный индекс. В случае индекса первичного ключа обязательно укажите PRIMARY KEY NONCLUSTERED [HASH] . |
Функция | Кодовая страница, отличная от 1252 | Столбцы в таблицах, оптимизированных для памяти, с типами char данных и varchar должны использовать кодовую страницу 1252. Используйте n(var)char вместо (var)char или используйте сортировку с кодовой страницей 1252 (например, Latin1_General_BIN2). Дополнительные сведения см. в разделе "Параметры сортировки" и "Кодовые страницы". |
Функция | DDL внутри транзакций | Оптимизированные для памяти таблицы и скомпилированные в собственном коде хранимые процедуры нельзя создать или удалить в контексте транзакции пользователя. Не запускайте транзакцию и убедитесь, что параметр сеанса IMPLICIT_TRANSACTIONS OFF перед выполнением инструкции CREATE или DROP. |
Функция | Триггеры DDL | Оптимизированные для памяти таблицы и скомпилированные в собственном коде хранимые процедуры нельзя создать или удалить, если для этой операции DDL существует сервер или триггер базы данных. Удалите триггеры сервера и базы данных в CREATE/DROP TABLE и CREATE/DROP PROCEDURE. |
Функция | УВЕДОМЛЕНИЕ О СОБЫТИИ | Оптимизированные для памяти таблицы и скомпилированные в собственном коде хранимые процедуры нельзя создать или удалить, если для этой операции DDL есть уведомление о событии сервера или базы данных. Уберите уведомления о событиях, связанных с сервером и базой данных при выполнении команд CREATE TABLE или DROP TABLE и CREATE PROCEDURE или DROP PROCEDURE. |
Функция | Таблица файлов | Оптимизированные для памяти таблицы нельзя создавать в виде таблиц файлов. Удаление аргумента AS FileTable из инструкции CREATE TABLE |
Операция | Обновление первичных ключевых столбцов | Не удается обновить первичные ключевые столбцы в оптимизированных для памяти таблицах и типах таблиц. Если первичный ключ необходимо обновить, удалите старую строку и вставьте новую строку с обновленным первичным ключом. |
Операция | СОЗДАТЬ ИНДЕКС | Индексы для таблиц, оптимизированных для памяти, должны быть указаны в соответствии с инструкцией CREATE TABLE . Чтобы добавить индекс в оптимизированную для памяти таблицу, удалите и повторно создайте таблицу, включая новую спецификацию индекса. |
Операция | ИЗМЕНИТЬ ТАБЛИЦУ | Изменение оптимизированных для памяти таблиц не поддерживается. Удалите и повторно создайте таблицу с помощью обновленного определения таблицы. |
Операция | Создать полнотекстовый индекс | Полнотекстовые индексы не поддерживаются для таблиц, оптимизированных для памяти. |
Операция | Изменение схемы | Оптимизированные для памяти таблицы и скомпилированные в собственном коде хранимые процедуры не поддерживают изменения схемы, например sp_rename .Попытка внести изменения схемы, например переименование таблицы, приведет к возникновению ошибки 12320, операции, требующие изменения версии схемы, например переименование, не поддерживаются в таблицах, оптимизированных для памяти. Чтобы изменить схему, удалите и заново создайте таблицу или процедуру с помощью обновленного определения. |
Операция | CREATE TRIGGER | Триггеры в таблицах, оптимизированных для памяти, не поддерживаются. |
Операция | ОЧИСТИТЬ ТАБЛИЦУ | Операция TRUNCATE не поддерживается для оптимизированных для памяти таблиц. Чтобы удалить все строки из таблицы, удалите все строки, используя DELETE FROM таблицу или удалите и заново создайте таблицу. |
Операция | ИЗМЕНИТЬ АВТОРИЗАЦИЮ | Изменение владельца существующей оптимизированной для памяти таблицы или скомпилированной в собственном коде хранимой процедуры не поддерживается. Удалите и вновь создайте таблицу или процедуру, чтобы изменить собственника. |
Операция | ALTER SCHEMA (Изменить схему) | Изменение схемы существующей оптимизированной для памяти таблицы или скомпилированной в собственном коде хранимой процедуры не поддерживается. Удалите и повторно создайте таблицу или процедуру, чтобы изменить схему. |
Операция | DBCC CHECKTABLE | DBCC CHECKTABLE не поддерживается в таблицах, оптимизированных для памяти. |
Функция | ANSI_PADDING отключен | Параметр сеанса ANSI_PADDING должен быть ВКЛЮЧЕН при создании оптимизированных для памяти таблиц или скомпилированных в собственном коде хранимых процедур. Выполните команду SET ANSI_PADDING ON перед запуском инструкции CREATE. |
Вариант | СЖАТИЕ_ДАННЫХ | Сжатие данных не поддерживается для оптимизированных для памяти таблиц. Удалите параметр из определения таблицы. |
Функция | DTC | Оптимизированные для памяти таблицы и скомпилированные в собственном коде хранимые процедуры нельзя получить из распределенных транзакций. Вместо этого используйте транзакции SQL. |
Функция | Несколько активных результирующих наборов (MARS) | Несколько активных результирующих наборов (MARS) не поддерживаются в таблицах, оптимизированных для памяти. Эта ошибка также может указывать на использование связанного сервера. Связанный сервер может использовать MARS. Связанные серверы не поддерживаются с таблицами, оптимизированными по памяти. Вместо этого подключитесь непосредственно к серверу и базе данных, в котором размещаются оптимизированные для памяти таблицы. |
Операция | Оптимизированные для памяти таблицы в качестве целевого объекта MERGE | Таблицы, оптимизированные для памяти, не могут быть целью операции MERGE . Используйте инструкции INSERT , UPDATE или DELETE . |
Индексы для оптимизированных для памяти таблиц
В следующей таблице перечислены функции и ключевые слова Transact-SQL, которые могут отображаться в тексте сообщения об ошибке с индексом в таблице с оптимизированным использованием памяти, а также действия для устранения ошибки.
Тип | Имя | Резолюция |
---|---|---|
Функция | Отфильтрованный индекс | Отфильтрованные индексы не поддерживаются в таблицах, оптимизированных для памяти. Исключить WHERE предложение из описания индекса. |
Функция | УНИКАЛЬНЫЙ | Уникальные индексы не поддерживаются для оптимизированных для памяти таблиц. Удалите аргумент UNIQUE из спецификации индекса. |
Функция | Столбцы, допускающие значение NULL | Все столбцы в ключе индекса в оптимизированной для памяти таблице должны быть указаны как NOT NULL .
NOT NULL Включите ограничение со всеми столбцами в ключи индекса. |
Функция | Параметры сортировки, отличные от bin2 | Все столбцы символов в ключе оптимизированного для памяти индекса должны быть объявлены с помощью сортировки BIN2. Используйте оператор COLLATE для задания параметров сортировки в определении столбца. Дополнительные сведения см. в разделе "Параметры сортировки" и "Кодовые страницы". |
Функция | Включенные столбцы | Указание включенных столбцов не требуется для таблиц, оптимизированных для памяти. Все столбцы оптимизированной для памяти таблицы неявно включаются в каждый оптимизированный для памяти индекс. |
Операция | ИЗМЕНИТЬ ИНДЕКС | Изменение индексов в таблицах, оптимизированных для памяти, не поддерживается. Вместо этого удалите таблицу и повторно создайте ее с помощью обновленной спецификации индекса. |
Операция | УДАЛИТЬ ИНДЕКС (DROP INDEX) | Удаление индексов в таблицах, оптимизированных для памяти, не поддерживается. Вместо этого удалите таблицу и создайте ее заново с нужными индексами. |
Опция индекса | Параметр индекса | Указанный параметр индекса не поддерживается индексами в таблицах, оптимизированных для памяти. Удалите параметр из спецификации индекса. |
Некластеризованные хэш-индексы
В следующей таблице перечислены Transact-SQL функции и ключевые слова, которые могут отображаться в тексте сообщения об ошибке с некластеризованным хэш-индексом, а также действие по исправлению ошибки.
Тип | Имя | Резолюция |
---|---|---|
Вариант | ASC/DESC | Некластеризованные хеш-индексы не имеют порядка. Удалите ключевые ASC слова и DESC из спецификации ключа индекса. |
Естественно скомпилированные хранимые процедуры
В следующей таблице перечислены Transact-SQL функции и ключевые слова, которые могут отображаться в тексте сообщения об ошибке с использованием скомпилированных в собственном коде хранимых процедур, а также действия по исправлению ошибки.
Тип | Функция | Резолюция |
---|---|---|
Функция | Встроенные переменные таблицы | Типы таблиц не могут быть объявлены встроенными в объявления переменных. Типы таблиц должны объявляться явно с помощью инструкции CREATE TYPE . |
Функция | Курсоры | Курсоры не поддерживаются в собственно скомпилированных хранимых процедурах. -При выполнении процедуры из клиента используйте RPC, а не API курсора. В ODBC избегайте использования инструкции Transact-SQL EXECUTE , вместо этого указывайте имя процедуры непосредственно.- При выполнении процедуры из пакета Transact-SQL или другой хранимой процедуры избегайте использования курсора с нативно скомпилированной хранимой процедурой. -При создании внутренне скомпилированной хранимой процедуры вместо использования курсора используйте логику на основе наборов данных или WHILE цикл. |
Функция | Значения по умолчанию для неконстантных параметров | При использовании значений по умолчанию с параметрами в скомпилированных в собственном коде хранимых процедур значения должны быть константами. Удалите все подстановочные символы из объявлений параметров. |
Функция | ВНЕШНИЙ | Хранимые процедуры CLR не могут быть скомпилированы в собственном коде. Удалите предложение AS EXTERNAL или параметр NATIVE_COMPILATION из инструкции CREATE PROCEDURE. |
Функция | Нумерованные хранимые процедуры | Скомпилированные хранимые процедуры в собственном коде не могут быть нумерованы.
; Удалите номер из инструкцииCREATE PROCEDURE . |
Функция | многострочные операторы INSERT ... VALUES | Невозможно вставить несколько строк с помощью одного INSERT оператора в хранимой процедуре, скомпилированной в собственном коде. Создайте INSERT заявления для каждой строки. |
Функция | Общие табличные выражения (CTEs) | Общие табличные выражения (CTE) не поддерживаются в нативно скомпилированных хранимых процедурах. Заново составить запрос. |
Функция | вложенный запрос | Вложенные запросы (запросы, вложенные внутри другого запроса), не поддерживаются. Заново составить запрос. |
Функция | ВЫЧИСЛЕНИЕ | Условие COMPUTE не поддерживается. Удалите его из запроса. |
Функция | SELECT INTO | Выражение INTO не поддерживается с оператором SELECT . Перезапись запроса в виде INSERT INTO таблицыSELECT . |
Функция | ВЫХОД | Условие OUTPUT не поддерживается. Удалите его из запроса. |
Функция | неполный список столбцов вставки | В INSERT инструкциях значения должны быть указаны для всех столбцов в таблице. |
Функция | Функция | Встроенная функция не поддерживается в собственных скомпилированных хранимых процедурах. Удалите функцию из хранимой процедуры. Дополнительные сведения о поддерживаемых встроенных функциях см. в разделе "Скомпилированные в собственном коде хранимые процедуры". |
Функция | Случай | Инструкция CASE не поддерживается в запросах внутри нативно скомпилированных хранимых процедур. Создайте запросы для каждого случая. Дополнительные сведения см. в разделе "Реализация инструкции CASE". |
Функция | определяемые пользователем функции | Определяемые пользователем функции нельзя использовать в скомпилированных в собственном коде хранимых процедур. Удалите ссылку на функцию из определения процедуры. |
Функция | определяемые пользователем агрегаты | Определяемые пользователем агрегатные функции нельзя использовать в скомпилированных в собственном коде хранимых процедур. Удалите ссылку на функцию из процедуры. |
Функция | Метаданные режима обзора | Нативно скомпилированные хранимые процедуры не поддерживают метаданные просмотрового режима. Убедитесь, что параметр NO_BROWSETABLE сеанса имеет значение OFF. |
Функция | DELETE с использованием оператора FROM | Предложение FROM не поддерживается для DELETE инструкций с источником таблицы в скомпилированных в собственном коде хранимых процедур.DELETE предложение с FROM поддерживается, если оно используется для указания таблицы, из которой необходимо удалить данные. |
Функция | UPDATE с предложением FROM | Предложение FROM не поддерживается для UPDATE инструкций в скомпилированных в собственном коде хранимых процедур. |
Функция | временные процедуры | Временные хранимые процедуры не могут быть скомпилированы в собственном коде. Создайте постоянную нативно скомпилированную хранимую процедуру или временную интерпретированную Transact-SQL хранимую процедуру. |
Уровень изоляции | Чтение непроверенных данных | Уровень изоляции READ UNCOMMITTED не поддерживается для нативно скомпилированных хранимых процедур. Используйте поддерживаемый уровень изоляции, например SNAPSHOT. |
Уровень изоляции | READ COMMITTED (Уровень изоляции транзакций) | Уровень изоляции READ UNCOMMITTED не поддерживается для скомпилированных в собственном коде хранимых процедур. Используйте поддерживаемый уровень изоляции, например SNAPSHOT. |
Функция | временные таблицы | Таблицы в tempdb нельзя использовать в нативно скомпилированных хранимых процедурах. Вместо этого используйте табличную переменную или таблицу, оптимизированную по памяти, с DURABILITY=SCHEMA_ONLY. |
Функция | МАРС | Несколько активных результирующих наборов (MARS) не поддерживаются в собственном коде хранимых процедур. Эта ошибка также может указывать на использование связанного сервера. Связанный сервер может использовать MARS. Связанные серверы не поддерживаются нативно скомпилированными хранимыми процедурами. Вместо этого подключитесь непосредственно к серверу и базе данных, где размещаются скомпилированные в собственном коде хранимые процедуры. |
Функция | DTC | Оптимизированные для памяти таблицы и скомпилированные в собственном коде хранимые процедуры нельзя получить из распределенных транзакций. Вместо этого используйте транзакции SQL. |
Функция | Сортировка, не соответствующая bin2 | Для выполнения операций сравнения, сортировки и других манипуляций с символьными строками в изначально скомпилированных хранимых процедурах требуется использовать колляцию BIN2. Используйте предложение COLLATE или используйте столбцы и переменные с соответствующими параметрами сортировки. Дополнительные сведения см. в разделе "Параметры сортировки" и "Кодовые страницы". |
Функция | Обрезка строк символов при сортировке по SC. | Строки символов с коллатерацией _SC используют кодировку UTF-16. Преобразование значения n(var)char в значение n(var)char с более короткой длиной включает усечение. Это не поддерживается для значений UTF-16 в собственно скомпилированных хранимых процедурах. Избегайте усечения строк UTF-16. |
Функция | ВЫПОЛНЕНИЕ С ПОМОЩЬЮ RECOMPILE | Параметр WITH RECOMPILE не поддерживается для скомпилированных в собственном коде хранимых процедур. |
Функция | LEN и SUBSTRING с аргументом в сортировке SC | Строки символов с параметрами сортировки _SC используют кодировку UTF-16. Встроенные функции LEN и SUBSTRING при использовании внутри скомпилированных в собственном коде хранимых процедур не поддерживают кодировку UTF-16. Используйте другую сортировку или избегайте использования этой функции. |
Функция | Выполнение из подключения выделенного администратора. | Нативно скомпилированные хранимые процедуры не могут быть выполнены через выделенное подключение администратора (DAC). Вместо этого используйте регулярное подключение. |
Операция | ИЗМЕНИТЬ ПРОЦЕДУРУ | Скомпилированные в родном коде хранимые процедуры нельзя изменить. Чтобы изменить определение процедуры, удалите и создайте хранимую процедуру. |
Операция | Точка сохранения | Нативно скомпилированные хранимые процедуры нельзя вызывать из транзакций, имеющих активную точку сохранения. Удалите точку сохранения из транзакции. |
Операция | ИЗМЕНИТЬ АВТОРИЗАЦИЮ | Изменение владельца существующей оптимизированной для памяти таблицы или скомпилированной в собственном коде хранимой процедуры не поддерживается. Удалите и вновь создайте таблицу или процедуру, чтобы изменить собственника. |
Оператор | OPENROWSET | Этот оператор не поддерживается. Удалите OPENROWSET из хранимой процедуры нативной компиляции. |
Оператор | OPENQUERY | Этот оператор не поддерживается. Удалите OPENQUERY из нативно скомпилированной хранимой процедуры. |
Оператор | OPENDATASOURCE | Этот оператор не поддерживается. Удалите OPENDATASOURCE из скомпилированной в собственном коде хранимой процедуры. |
Оператор | OPENXML | Этот оператор не поддерживается. Удалите OPENXML из нативно скомпилированной хранимой процедуры. |
Оператор | CONTAINSTABLE | Этот оператор не поддерживается. Удалите CONTAINSTABLE из нативно скомпилированной хранимой процедуры. |
Оператор | FREETEXTTABLE | Этот оператор не поддерживается. Удалите FREETEXTTABLE из созданной в нативном коде хранимой процедуры. |
Функция | Функции с табличным значением | На функции с табличным значением нельзя ссылаться из скомпилированных в собственном коде хранимых процедур. Одним из возможных обходных решений этого ограничения является добавление логики в табличные функции значений в тело процедуры. |
Оператор | таблица изменений данных | Этот оператор не поддерживается. Удалите CHANGETABLE из скомпилированной в собственном коде хранимой процедуры. |
Оператор | ПЕРЕХОД | Этот оператор не поддерживается. Используйте другие процедурные конструкции, такие как WHILE. |
Оператор | EXECUTE, INSERT EXEC | Вложенные хранимые процедуры, скомпилированные в собственном коде, не поддерживаются. Необходимые операции можно указать напрямую, в составе определения хранимой процедуры. |
Оператор | СМЕЩЕНИЕ | Этот оператор не поддерживается. Удалите OFFSET из нативно скомпилированной хранимой процедуры. |
Оператор | СОЮЗ | Этот оператор не поддерживается. Удалите UNION из нативно скомпилированной хранимой процедуры. Объединение нескольких результирующих наборов в один результирующий набор можно сделать с помощью табличной переменной. |
Оператор | ПЕРЕСЕЧЕНИЕ | Этот оператор не поддерживается. Удалите INTERSECT из нативно скомпилированной хранимой процедуры. В некоторых случаях для получения того же результата можно использовать INNER JOIN. |
Оператор | КРОМЕ | Этот оператор не поддерживается. Удалите EXCEPT из нативно скомпилированной хранимой процедуры. |
Оператор | ВНЕШНЕЕ СОЕДИНЕНИЕ | Этот оператор не поддерживается. Удалите OUTER JOIN из нативно скомпилированной хранимой процедуры. Дополнительные сведения см. в разделе "Реализация внешнего соединения". |
Оператор | ПРИМЕНИТЬ | Этот оператор не поддерживается. Удалите APPLY из нативно скомпилированной хранимой процедуры. |
Оператор | ПОВОРОТ | Этот оператор не поддерживается. Удалите PIVOT из нативно скомпилированной хранимой процедуры. |
Оператор | UNPIVOT | Этот оператор не поддерживается. Удалите UNPIVOT из нативно скомпилированной хранимой процедуры. |
Оператор | ИЛИ, IN | Дизъюнкция (OR, IN) не поддерживается в условии WHERE запросов в нативно скомпилированных хранимых процедурах. Создайте запросы для каждого из вариантов. |
Оператор | СОДЕРЖИТ | Этот оператор не поддерживается. Удалите CONTAINS из нативно скомпилированной хранимой процедуры. |
Оператор | Свободный текст | Этот оператор не поддерживается. Удалите FREETEXT из нативно скомпилированной хранимой процедуры. |
Оператор | НЕ | Этот оператор не поддерживается. Удалите NOT из нативно скомпилированной хранимой процедуры. В некоторых случаях NOT можно заменить неравенством. Например, NOT a=b можно заменить на a!=b . |
Оператор | TSEQUAL | Этот оператор не поддерживается. Удалите TSEQUAL из нативно скомпилированной хранимой процедуры. |
Оператор | Нравится | Этот оператор не поддерживается. Удалите LIKE из нативно скомпилированной хранимой процедуры. |
Оператор | СЛЕДУЮЩЕЕ ЗНАЧЕНИЕ ДЛЯ | Нельзя использовать последовательности внутри нативно скомпилированных хранимых процедур. Получите значение с помощью интерпретированного Transact-SQL, а затем передайте его в скомпилированную в собственной среде выполнения хранимую процедуру. Для получения дополнительной информации см. Реализация IDENTITY в таблице Memory-Optimized. |
Параметр SET | Параметр | Параметры SET нельзя изменить внутри скомпилированных в собственном коде хранимых процедур. Некоторые параметры можно задать с помощью инструкции BEGIN ATOMIC. Дополнительные сведения см. в разделе об атональных блоках в хранимых процедурах, скомпилированных в собственном коде. |
Операнд | Пример Таблицы (TABLESAMPLE) | Этот оператор не поддерживается. Удалите TABLESAMPLE из нативно скомпилированной хранимой процедуры. |
Вариант | ПЕРЕКОМПИЛИРОВАТЬ | Нативно скомпилированные хранимые процедуры компилируются во время создания. Чтобы повторно скомпилировать нативно скомпилированную хранимую процедуру, сначала удалите, а затем создайте её заново. Удалите RECOMPILE из определения процедуры. |
Вариант | ШИФРОВАНИЕ | Этот параметр не поддерживается. Удалите ENCRYPTION из определения процедуры. |
Вариант | ДЛЯ РЕПЛИКАЦИИ | Для репликации невозможно создать нативно скомпилированные хранимые процедуры. Удален FOR REPLICATION из определения процедуры. |
Вариант | Для XML | Этот параметр не поддерживается. Удалите FOR XML из нативно скомпилированной хранимой процедуры. |
Вариант | ДЛЯ ПРОСМОТРА | Этот параметр не поддерживается. Удалите FOR BROWSE из нативно скомпилированной хранимой процедуры. |
Указание соединения | Хэш, Слияние | Скомпилированные в собственном коде хранимые процедуры поддерживают только соединения вложенных циклов. Хэш-соединения и слияние соединений не поддерживаются. Удалите подсказку соединения. |
Подсказка запроса | Указание запроса | Указание запроса не находится внутри нативно скомпилированных хранимых процедур. Поддерживаемые подсказки запросов см. в разделе "Подсказки запросов" (Transact-SQL). |
Вариант | УНИКАЛЬНЫЙ | Этот параметр не поддерживается. Удалите DISTINCT из запроса в хранимой процедуре, скомпилированной в нативный код. |
Вариант | ПРОЦЕНТ | Этот параметр не поддерживается предложениями TOP . Удалите PERCENT из запроса в нативно скомпилированной хранимой процедуре. |
Вариант | С СВЯЗЯМИ | Этот параметр не поддерживается с TOP условиями. Удалите WITH TIES из запроса в нативно скомпилированной хранимой процедуре. |
Агрегатная функция | Агрегатная функция | Это предложение не поддерживается. Дополнительные сведения об агрегатных функциях в хранимых процедурах с нативной компиляцией можно найти в разделе Хранимые процедуры с нативной компиляцией. |
Ранжирующая функция | Ранжирование функции | Функции ранжирования не поддерживаются в нативно скомпилированных хранимых процедурах. Удалите их из определения процедуры. |
Функция | Функция | Эта функция не поддерживается. Удалите его из нативно скомпилированной хранимой процедуры. |
Заявление | Заявление | Это заявление не поддерживается. Удалите это из нативно скомпилированной хранимой процедуры. |
Функция | MIN и MAX, используемые с двоичными и символьными строками | Агрегатные функции MIN и MAX не могут использоваться для символьных и двоичных строковых значений внутри скомпилированных в собственном коде хранимых процедур. |
Функция | GROUP BY без агрегатной функции | В нативно скомпилированных хранимых процедурах, при наличии предложения GROUP BY , в запросе также должна использоваться агрегатная функция в предложении SELECT или HAVING. Добавьте агрегатную функцию в запрос. |
Функция | ГРУППИРОВКА ПО ВСЕМ | ALL нельзя использовать с предложениями GROUP BY в хранимых процедурах, скомпилированных в родном формате. Удалите ALL из предложения GROUP BY. |
Функция | GROUP BY () | Группирование по пустому списку не поддерживается. Удалите предложение GROUP BY или включите столбцы в список группирования. |
Функция | свёртка |
ROLLUP нельзя использовать с GROUP BY условиями в нативно скомпилированных хранимых процедурах. Удалите ROLLUP из определения процедуры. |
Функция | КУБ |
CUBE нельзя использовать с GROUP BY условиями в сконфигурированных в нативный код хранимых процедурах. Удалите CUBE из определения процедуры. |
Функция | НАБОРЫ ГРУППИРОВОК |
GROUPING SETS нельзя использовать с GROUP BY условиями в нативно скомпилированных хранимых процедурах. Удалите GROUPING SETS из определения процедуры. |
Функция | BEGIN TRANSACTION (НАЧАТЬ ТРАНЗАКЦИЮ), COMMIT TRANSACTION (ЗАФИКСИРОВАТЬ ТРАНЗАКЦИЮ) и ROLLBACK TRANSACTION (ОТМЕНИТЬ ТРАНЗАКЦИЮ) | Используйте блоки ATOMIC для управления транзакциями и обработкой ошибок. Дополнительные сведения см. в разделе "Атомарные блоки". |
Функция | Инлайн-объявления табличных переменных. | Переменные таблицы должны ссылаться на явно определенные типы таблиц, оптимизированные для памяти. Необходимо создать оптимизированный для памяти тип таблицы и использовать этот тип для объявления переменной, а не указывать встроенный тип. |
Функция | sp_recompile | Повторная компиляция собственным образом скомпилированных хранимых процедур не поддерживается. Удалите и создайте процедуру заново. |
Функция | ВЫПОЛНЕНИЕ ОТ ИМЕНИ ВЫЗЫВАЮЩЕГО | Предложение EXECUTE AS является обязательным. Но EXECUTE AS CALLER не поддерживается. Используйте EXECUTE AS OWNER , EXECUTE AS пользователя или EXECUTE AS SELF . |
Функция | Таблицы на диске | Доступ к таблицам, основанным на дисках, невозможно получить из нативно скомпилированных хранимых процедур. Удалите ссылки на дисковые таблицы из скомпилированных в собственном коде хранимых процедур. Кроме того, перенесите таблицы на основе дисков в оптимизированную память. |
Функция | Представления | Доступ к представлениям невозможен из нативно скомпилированных хранимых процедур. Вместо представлений используйте базовые таблицы. |
Функция | Функции с табличным значением | Доступ к табличным функциям невозможно получить из нативно скомпилированных хранимых процедур. Удалите ссылки на табличные функции из нативно скомпилированной хранимой процедуры. |
Транзакции, которые обращаются к таблицам Memory-Optimized
В следующей таблице перечислены Transact-SQL функции и ключевые слова, которые могут отображаться в тексте сообщения об ошибке с участием транзакций, обращаюющихся к оптимизированным для памяти таблицам, а также действия по исправлению ошибки.
Тип | Имя | Резолюция |
---|---|---|
Функция | Точка сохранения | Создание явных точек сохранения в транзакциях, которые обращаются к таблицам, оптимизированным для памяти, не поддерживаются. |
Функция | привязанная транзакция | Связанные сеансы не могут участвовать в транзакциях с доступом к таблицам, оптимизированным для памяти. Не привязывайтесь к сеансу перед выполнением процедуры. |
Функция | DTC | Транзакции, обращаюющиеся к оптимизированным для памяти таблицам, не могут быть распределенными транзакциями. |