次の方法で共有


sp_fulltext_column (Transact-SQL)

テーブルの特定の列を、フルテキスト インデックス作成の対象にするかどうかを指定します。

重要な注意事項重要

この機能は、将来のバージョンの Microsoft SQL Server では削除される予定です。 新しい開発作業では、この機能の使用を避け、現在この機能を使用しているアプリケーションは修正するようにしてください。代わりに、ALTER FULLTEXT 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'
    1 つまたは 2 つの要素で構成されるテーブル名を指定します。テーブルは、現在のデータベース内に存在している必要があります。またこのテーブルに対して、フルテキスト インデックスが作成されている必要があります。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

    qualified_table_name の column_name を、テーブルの非アクティブなフルテキスト インデックスに追加します。この操作を行うと、列に対するフルテキスト インデックス作成が有効になります。

    drop

    qualified_table_name の column_name を、テーブルの非アクティブなフルテキスト インデックスから削除します。

  • [ @language= ] 'language_term'
    列に格納されているデータの言語を指定します。SQL Server で扱われる言語の一覧については、「sys.fulltext_languages (Transact-SQL)」を参照してください。

    注意注意

    複数の言語のデータ、またはサポートされていない言語のデータが列に含まれる場合は、"ニュートラル言語" を使用します。既定値は構成オプション 'default full-text language' で指定されます。

  • [ @type_colname = ] 'type_column_name'
    column_name のドキュメント型が格納されている、qualified_table_name 内の列の名前を指定します。この列のデータ型は char、nchar、varchar、または nvarchar であることが必要です。これは column_name のデータ型が varbinary(max) または image の場合にのみ使用されます。type_column_name のデータ型は sysname で、既定値はありません。

リターン コード値

0 (成功) または 1 (失敗)

結果セット

なし

説明

フルテキスト インデックスがアクティブの場合、実行中の作成処理は停止します。また、アクティブなフルテキスト インデックスを持つテーブルで変更の追跡が有効になっている場合、SQL Server では現在のインデックスが維持されます。たとえば SQL Server では、あるテーブルに対して現在行われているインデックス作成がすべて停止され、既存のインデックスの削除、および新しいインデックスの作成が開始されます。

変更の追跡がオンの状態で、インデックスを保持したまま列をフルテキスト インデックスに追加または削除する場合は、テーブルを非アクティブにしたうえで、必要な列を追加または削除してください。この操作では、インデックスは変化しません。作成を開始できる状態になったら、テーブルをアクティブ化します。

権限

ユーザーは、db_ddladmin 固定データベース ロールまたは db_owner 固定データベース ロールのメンバであるか、テーブルの所有者であることが必要です。

次の例では、Document テーブルの DocumentSummary 列を、テーブルのフルテキスト インデックスに追加します。

USE AdventureWorks;
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)')

この結果セットには、trabajo、trabajamos、trabajan など、各種形式の trabajar 行が含まれます。

注意注意

1 つのフルテキスト クエリ関数句で指定する列は、すべて同じ言語を使用している必要があります。