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


sp_fulltext_catalog (Transact-SQL)

 

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

Важно!

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

Область применения: SQL Server (начиная с SQL Server 2008 до текущей версии), База данных SQL V12.

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

     sp_fulltext_catalog [ @ftcat= ] 'fulltext_catalog_name' , 
[ @action= ] 'action' 
[ , [ @path= ] 'root_directory' ] 

Аргументы

  • [ @ftcat=] 'fulltext_catalog_name'
    Имя полнотекстового каталога.Имена каталогов должны быть уникальными для каждой базы данных.Аргумент fulltext_catalog_name имеет тип sysname.

  • [ @action=] 'action'
    Действие, которое должно быть выполнено.Аргумент action имеет тип varchar(20) и может принимать одно из следующих значений.

    Примечание

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

    Значение

    Описание

    Create

    Создает в файловой системе новый пустой полнотекстовый каталог и добавляет в таблицу sysfulltextcatalogs строку со значениями аргументов fulltext_catalog_name и root_directory, если они указаны.Имя fulltext_catalog_name должно быть уникальным в пределах базы данных.

    Drop

    Удаляет полнотекстовый каталог из файловой системы и строку fulltext_catalog_name из таблицы sysfulltextcatalogs.Действие не будет выполнено, если каталог содержит индексы для одной или нескольких таблиц.Для удаления таблиц из каталога следует выполнить процедуру sp_fulltext_table «table_name», «drop».

    Если каталог не существует, появится сообщение об ошибке.

    start_incremental

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

    start_full

    Запускает полное заполнение каталога fulltext_catalog_name.Для полнотекстового индексирования извлекаются все строки всех таблиц, связанных с полнотекстовым каталогом, даже если они уже проиндексированы.

    Остановить

    Останавливает заполнение индекса для каталога fulltext_catalog_name.Если каталог не существует, появится сообщение об ошибке.Если заполнение уже остановлено, предупреждение не отображается.

    Rebuild

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

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

  • [ @path=] 'root_directory'
    Корневой каталог (не полный физический путь) для операции create.Аргумент root_directory имеет тип nvarchar(100) и значение по умолчанию NULL, означающее, что процедура будет использовать расположение по умолчанию, заданное при установке.Это подкаталог Ftdata в каталоге Mssql, например «C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\FTData».Указанный каталог должен находиться на локальном диске, его имя не может состоять только из одной буквы диска, и путь к этому каталогу не может быть относительным.Сетевые, съемные, гибкие диски и UNC-пути не поддерживаются.Полнотекстовые каталоги можно создавать на локальных жестких дисках, связанных с экземпляром SQL Server.

    Аргумент @path допускается только в том случае, когда аргумент action принимает значение create.С действиями, отличными от create (stop, rebuild и т. п.), аргумент @path применяется только со значением NULL.

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

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

0 (успешное завершение) или 1 (неуспешное завершение)

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

Нет

Заметки

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

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

Разрешения

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

Примеры

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

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

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

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

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

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

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

Пример запуска полного заполнения каталога Cat_Desc.

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

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

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

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

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

Пример удаления каталога Cat_Desc.

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

См. также

FULLTEXTCATALOGPROPERTY (Transact-SQL)
sp_fulltext_database (Transact-SQL)
sp_help_fulltext_catalogs (Transact-SQL)
sp_help_fulltext_catalogs_cursor (Transact-SQL)
Системные хранимые процедуры (Transact-SQL)
Компонент Full-Text Search