sp_fulltext_table (Transact-SQL)

Область применения:SQL ServerAzure Synapse Analytics

Отмечает таблицу для полнотекстового индексирования или снимает эту отметку.

Внимание

Эта функция будет удалена в будущей версии SQL Server. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется. Вместо этого используйте CREATE FULLTEXT INDEX, ALTER FULLTEXT INDEX и DROP FULLTEXT INDEX .

Соглашения о синтаксисе Transact-SQL

Синтаксис

sp_fulltext_table
    [ @tabname = ] N'tabname'
    , [ @action = ] 'action'
    [ , [ @ftcat = ] N'ftcat' ]
    [ , [ @keyname = ] N'keyname' ]
[ ; ]

Аргументы

[ @tabname = ] N'tabname'

Имя таблицы с одной частью или двумя частью. Таблица должна существовать в текущей базе данных. @tabname — nvarchar(517) без значения по умолчанию.

[ = ] @action 'action'

Действие, выполняемого. @action является nvarchar(50), без значения по умолчанию и может быть одним из этих значений.

значение Описание
Создание Создает метаданные для полнотекстового индекса таблицы, на которую ссылается @tabname , и указывает, что данные полнотекстового индекса для этой таблицы должны находиться в @ftcat. Это действие также обозначает использование @keyname в качестве столбца полнотекстового ключа. Этот уникальный индекс уже должен существовать и быть определенным для одного из столбцов таблицы.

Полнотекстовый поиск не может выполняться в этой таблице, пока полнотекстовый каталог не будет заполнен.
Drop Удаляет метаданные полнотекстового индекса для @tabname. Если полнотекстовый индекс активен, он автоматически деактивируется перед удалением. Перед удалением полнотекстового индекса не требуется удалять столбцы.
Активировать Активирует возможность сбора данных полнотекстового индекса для @tabname после деактивации. Для активации в полнотекстовый индекс должен входить хотя бы один столбец.

Полнотекстовый индекс автоматически становится активным (для заполнения) как только добавляется первый столбец для индексирования. Если из индекса удален последний столбец, индекс становится неактивным. Если включено отслеживание изменений, неактивный индекс начинает новое заполнение.

Это не заполняет полнотекстовый индекс, но просто регистрирует таблицу в полнотекстовом каталоге в файловой системе, чтобы строки из @tabname можно было получить во время следующей полнотекстовой совокупности индексов.
Деактивировать Деактивирует полнотекстовый индекс для @tabname , чтобы данные полнотекстового индекса больше не могли собираться для @tabname. Метаданные полнотекстового индекса сохраняются, и индексирование может быть активировано снова.

Если включено отслеживание изменений, деактивация активного индекса закрепляет состояние индекса: любое текущее заполнение прекращается, и новые изменения в индекс не попадают.
start_change_tracking Начинает добавочное заполнение полнотекстового индекса. Если в таблице нет метки времени, запустите полную популяцию полнотекстового индекса. Начать отслеживать изменения таблицы.

Отслеживание полнотекстовых изменений не отслеживает операции WRITETEXT или UPDATETEXT, выполняемые в полнотекстовых индексированных столбцах, которые имеют тип изображения, текста или ntext.
stop_change_tracking Прекращает отслеживать изменения таблицы.
update_index Внести текущий набор изменений таблицы в полнотекстовый индекс.
start_background_updateindex Начинает внесение изменений таблицы в полнотекстовый индекс по мере их появления.
stop_background_updateindex Прекращает внесение изменений таблицы в полнотекстовый индекс по мере их появления.
start_full Выполняет полное заполнение полнотекстового индекса.
start_incremental Начинает добавочное заполнение полнотекстового индекса.
Остановить Прекращает добавочное заполнение.

[ @ftcat = ] N'ftcat'

Допустимое, существующее полное текстовое имя каталога для действия создания . Для всех других действий этот параметр должен быть равен NULL. @ftcat имеет имя sysname с значением по умолчаниюNULL.

[ @keyname = ] N'keyname'

Допустимый один ключ-столбец, уникальный ненулевой индекс в @tabname для действия создания . Для всех других действий этот параметр должен быть равен NULL. @keyname — sysname с значением по умолчаниюNULL.

Значения кода возврата

0 (успешно) или 1 (сбой).

Результирующий набор

Нет.

Замечания

После деактивации полнотекстового индекса для определенной таблицы существующий полнотекстовый индекс остается на месте до следующей полной совокупности; Однако этот индекс не используется, так как SQL Server блокирует запросы в деактивированных таблицах.

Если таблица активируется повторно и индекс не повторяется, старый индекс по-прежнему доступен для запросов к любым оставшимся столбцам, но не новым полнотекстовым столбцам. Данные из удаленных столбцов используются в запросах поиска по всем столбцам полнотекстового индекса.

После определения таблицы для полнотекстового индексирования, переключение полнотекстового уникального ключевого столбца из одного типа данных в другой либо путем изменения типа данных этого столбца или изменения полнотекстового уникального ключа из одного столбца в другой, без полного повторного копирования может произойти сбой во время последующего запроса и возврата сообщения об ошибке:

Сбой преобразования в тип data_type для значения ключа полнотекстового поиска key_value.

Чтобы предотвратить эту ошибку, удалите полное текстовое определение для этой таблицы с помощью действия sp_fulltext_table удаления и переопределить его с помощью sp_fulltext_table иsp_fulltext_column.

Полнотекстовый ключевой столбец должен содержать значения размером не более 900 байт. Рекомендуется, чтобы размер ключевого столбца был как можно меньше по соображениям производительности.

Разрешения

Могут выполняться только члены предопределенных ролей сервера sysadmin, db_owner и db_ddladmin предопределенных ролей базы данных или пользователь с разрешениями на ссылку в полнотекстовом каталоге.sp_fulltext_table

Примеры

А. Включение таблицы для полнотекстового индексирования

В следующем примере создаются метаданные полнотекстового индекса для таблицы Document базы данных AdventureWorks. Cat_Desc — полнотекстовый каталог. PK_Document_DocumentID — уникальный индекс по одиночному столбцу таблицы Document.

USE AdventureWorks2022;
GO

EXEC sp_fulltext_table 'Production.Document',
    'create',
    'Cat_Desc',
    'PK_Document_DocumentID';

--Add some columns
EXEC sp_fulltext_column 'Production.Document',
    'DocumentSummary',
    'add';

-- Activate the full-text index
EXEC sp_fulltext_table 'Production.Document',
    'activate';
GO

B. Активация и распространение изменений отслеживания

В следующем примере будет начато отслеживание изменений таблицы и их внесение в полнотекстовый индекс по мере появления.

USE AdventureWorks2022;
GO
EXEC sp_fulltext_table 'Production.Document', 'Start_change_tracking';
EXEC sp_fulltext_table 'Production.Document', 'Start_background_updateindex';
GO

C. Удаление полнотекстового индекса

В этом примере удаляются метаданные полнотекстового индекса таблицы Document базы данных AdventureWorks.

USE AdventureWorks2022;
GO
EXEC sp_fulltext_table 'Production.Document', 'drop';
GO