sp_fulltext_column (Transact-SQL)

Определяет, должен ли конкретный столбец таблицы использоваться в полнотекстовом индексировании.

Важное примечаниеВажно!

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

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

Синтаксис

sp_fulltext_column [ @tabname= ] 'qualified_table_name' , 
     [ @colname= ] 'column_name' , 
     [ @action= ] 'action' 
     [ , [ @language= ] 'language_term' ] 
     [ , [ @type_colname= ] 'type_column_name' ]

Аргументы

  • [ @tabname= ] 'qualified_table_name'
    Имя таблицы, состоящее из одной или двух частей. Таблица должна существовать в текущей базе данных. У таблицы должен быть полнотекстовый поиск. Параметр qualified_table_name относится к типу nvarchar(517) и не имеет значения по умолчанию.

  • [ @colname= ] 'column_name'
    Имя столбца таблицы qualified_table_name. Столбец должен иметь символьный тип, тип varbinary(max) или image и не может быть вычисляемым. Параметр column_name относится к типу sysname и не имеет значения по умолчанию.

    ПримечаниеПримечание

    SQL Server может создавать полнотекстовые индексы данных, хранящихся в столбцах типов varbinary(max) или image. Изображения и рисунки не индексируются.

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

    Значение

    Описание

    add

    Добавляет столбец column_name таблицы qualified_table_name в неактивный полнотекстовый индекс таблицы. Это действие активирует полнотекстовое индексирование столбца.

    drop

    Удаляет столбец column_name таблицы qualified_table_name из неактивного полнотекстового индекса таблицы.

  • [ @language= ] 'language_term'
    Язык данных, хранящихся в столбце. Список языков, включенных в SQL Server, см. в разделе sys.fulltext_languages (Transact-SQL).

    ПримечаниеПримечание

    Указывайте значение «Neutral», если столбец содержит данные на нескольких языках или на языке, который не поддерживается. Значение по умолчанию задается параметром конфигурации «default full-text language».

  • [ @type_colname = ] 'type_column_name'
    Имя столбца в таблице qualified_table_name, который содержит тип документа column_name. Этот столбец должен быть типа char, nchar, varchar или nvarchar. Он используется, если тип данных столбца column_name — varbinary(max) или image. Параметр type_column_name относится к типу sysname и не имеет значения по умолчанию.

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

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

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

Нет

Замечания

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

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

Разрешения

Пользователь должен быть членом предопределенной роли базы данных db_ddladmin, db_owner или владельцем таблицы.

Примеры

В следующем примере столбец DocumentSummary таблицы Document будет добавлен в полнотекстовый индекс этой таблицы.

USE AdventureWorks2008R2;
GO
EXEC sp_fulltext_column 'Production.Document', DocumentSummary, 'add';
GO

В следующем примере подразумевается, что для таблицы spanishTbl создан полнотекстовый индекс. Чтобы добавить столбец spanishCol к этому индексу, выполните следующую хранимую процедуру:

EXEC sp_fulltext_column 'spanishTbl', 'spanishCol', 'add', 0xC0A;
GO

При выполнении такого запроса:

SELECT * 
FROM spanishTbl 
WHERE CONTAINS(spanishCol, 'formsof(inflectional, trabajar)')

Результирующий набор будет включать в себя строки с различными формами слова trabajar («работать»), например trabajo, trabajamos и trabajan.

ПримечаниеПримечание

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