sp_fulltext_catalog (Transact-SQL)
Создает и удаляет полнотекстовый каталог, запускает и останавливает индексирование каталога. Для каждой базы данных можно создать несколько полнотекстовых каталогов.
Важно! |
---|
Хранимая процедура sp_fulltext_catalog будет удалена в следующих версиях SQL Server. Старайтесь не использовать ее в новых разработках. В приложениях, где она используется в настоящее время, предусмотрите соответствующие изменения. Вместо этой процедуры следует использовать новые полнотекстовые инструкции языка DDL. Дополнительные сведения см. в разделах, посвященных инструкциям CREATE, ALTER, DROP FULLTEXT CATALOG. |
Соглашения о синтаксисе в 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 и корневой_каталог, если он существует. Аргумент fulltext_catalog_name должен быть уникальным в пределах этой базы данных.
Drop
Удаляет полнотекстовый каталог из файловой системы и строку fulltext_catalog_name из таблицы sysfulltextcatalogs. Действие не будет выполнено, если каталог содержит индексы для одной или нескольких таблиц. Удалите таблицы из каталога с помощью хранимой процедуры sp_fulltext_table 'имя_таблицы', 'drop'.
Если каталог не существует, появится сообщение об ошибке.
start_incremental
Запускает добавочное заполнение каталога fulltext_catalog_name. Если каталог не существует, появится сообщение об ошибке. Если заполнение полнотекстового индекса уже выполняется, то появляется предупреждение, а заполнение отменяется. При добавочном заполнении полнотекстового индекса извлекаются только измененные строки на основе столбца timestamp индексируемой таблицы.
start_full
Запускает полное заполнение каталога fulltext_catalog_name. Для полнотекстового индексирования извлекаются все строки всех таблиц, связанных с полнотекстовым каталогом, даже если они уже проиндексированы.
Stop
Останавливает заполнение индекса для каталога имя_полнотекстового_каталога. Если каталог не существует, появится сообщение об ошибке. Если заполнение уже остановлено, предупреждение не отображается.
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\MSSQL.1\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) не должны быть запрещены в целевом полнотекстовом каталоге.
Примеры
А. Создание полнотекстового каталога
В этом примере создается пустой полнотекстовый каталог Cat_Desc в базе данных AdventureWorks.
USE AdventureWorks;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'create';
GO
Б. Реконструкция полнотекстового каталога
В этом примере перестраивается существующий полнотекстовый каталог Cat_Desc в базе данных AdventureWorks.
USE AdventureWorks;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'rebuild';
GO
В. Запуск заполнения полнотекстового каталога
Пример запуска полного заполнения каталога Cat_Desc.
USE AdventureWorks;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'start_full';
GO
Г. Остановка заполнения полнотекстового каталога
Пример остановки заполнения каталога Cat_Desc.
USE AdventureWorks;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'stop';
GO
Д. Удаление полнотекстового каталога
Пример удаления каталога Cat_Desc.
USE AdventureWorks;
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)