Поделиться через


sp_fulltext_catalog (Transact-SQL)

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure

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

Внимание

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

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

Синтаксис

sp_fulltext_catalog
    [ @ftcat = ] N'ftcat'
    , [ @action = ] 'action'
    [ , [ @path = ] N'path' ]
[ ; ]

Аргументы

[ @ftcat = ] N'ftcat'

Имя полнотекстового каталога. Имена каталогов должны быть уникальными для каждой базы данных. @ftcat — sysname без значения по умолчанию.

[ = ] @action 'action'

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

Примечание.

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

значение Описание
создание Создает пустой полнотекстовый каталог в файловой системе и добавляет связанную строку в sysfulltextcatalogs @ftcat и @path, если они присутствуют, значения. @ftcat должен быть уникальным в базе данных.
капля Удаляет @ftcat, удаляя ее из файловой системы и удаляя связанную строку.sysfulltextcatalogs Действие не будет выполнено, если каталог содержит индексы для одной или нескольких таблиц. sp_fulltext_table '<table_name>', 'drop' необходимо выполнить удаление таблиц из каталога.

Ошибка отображается, если каталог не существует.
start_incremental Запускает добавочное население для @ftcat. Ошибка отображается, если каталог не существует. Если заполнение полнотекстового индекса уже выполняется, то появляется предупреждение, а заполнение отменяется. При добавочном заполнении для полнотекстового индексирования извлекаются только измененные строки, при условии , что столбец метки времени присутствует в таблице с полнотекстовой индексированием.
start_full Запускает полную популяцию для @ftcat. Для полнотекстового индексирования извлекаются все строки всех таблиц, связанных с полнотекстовым каталогом, даже если они уже проиндексированы.
stop Останавливает население индекса для @ftcat. Ошибка отображается, если каталог не существует. Если заполнение уже остановлено, предупреждение не отображается.
перестроение Перестраивает @ftcat. Во время перестроения каталога существующий каталог удаляется, а на его месте создается новый каталог. Все таблицы, содержащие ссылки полнотекстового индексирования, сопоставляются с новым каталогом. Перестроение сбрасывает полнотекстовые метаданные в системных таблицах базы данных.

Если отслеживание изменений — OFF, перестроение не приводит к повторному заполнению только что созданного полнотекстового каталога. В этом случае выполните повторное заполнение sp_fulltext_catalog с помощью действия start_full или start_incremental .

[ @path = ] N'path'

Корневой каталог (не полный физический путь) для действия создания . @path — nvarchar(100), с значением по умолчанию, которое указывает на использование расположения по умолчаниюNULL, указанного при настройке.

FTData Это подкаталог в каталогеMSSQL, C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\FTDataнапример. Указанный корневой каталог должен находиться на диске на том же компьютере, состоящий не только из буквы диска, но и не может быть относительным путем. Сетевые диски, съемные диски, диски floppy и UNC-пути не поддерживаются. Полнотекстовые каталоги должны создаваться на локальном жестком диске, связанном с экземпляром SQL Server.

@path допустимо только при создании @action. Для действий, отличных от действий создания (остановки, перестроения и т. д.), @path должны быть NULL или опущены.

Если экземпляр SQL Server является виртуальным сервером в кластере, указанный каталог должен находиться на общем диске, на котором зависит ресурс SQL Server. Если @path не указан, расположение каталога по умолчанию находится на общем диске, в каталоге, указанном при установке виртуального сервера.

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

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

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

Нет.

Замечания

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

Полнотекстовый каталог и данные индекса хранятся в файлах в отдельной папке. Каталог полнотекстового каталога создается как подкаталог каталога, указанного в @path или в каталоге полнотекстового каталога сервера по умолчанию, если @path не указан. Имя полнотекстового каталога построено таким образом, чтобы он был уникальным на сервере. Следовательно, для всех папок полнотекстовых каталогов сервера можно использовать общий путь.

Разрешения

Вызывающий объект должен быть членом роли db_owner . В зависимости от запрошенного действия вызывающий объект не должен быть отклонен разрешения ALTER или CONTROL (которые db_owner имеются) в целевом полнотекстовом каталоге.

Примеры

А. Создание полнотекстового каталога

В этом примере создается пустой полнотекстовый каталог Cat_Descв AdventureWorks2022 базе данных.

USE AdventureWorks2022;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'create';
GO

B. Перестроение полнотекстового каталога

В этом примере перестроен существующий полнотекстовый каталог Cat_Descв AdventureWorks2022 базе данных.

USE AdventureWorks2022;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'rebuild';
GO

В. Запуск заполнения полнотекстового каталога

В этом примере начинается полная популяция Cat_Desc каталога.

USE AdventureWorks2022;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'start_full';
GO

D. Остановка заполнения полнотекстового каталога

В этом примере останавливается заполнение Cat_Desc каталога.

USE AdventureWorks2022;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'stop';
GO

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

В этом примере удаляется Cat_Desc каталог.

USE AdventureWorks2022;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'drop';
GO