sp_fulltext_column (Transact-SQL)

適用対象:SQL ServerAzure Synapse Analytics

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

重要

この機能は、 SQL Serverの将来のバージョンで削除される予定です。 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。 代わりに ALTER FULLTEXT INDEX を使用してください。

Transact-SQL 構文表記規則

構文

sp_fulltext_column
    [ @tabname = ] N'tabname'
    , [ @colname = ] N'colname'
    , [ @action = ] 'action'
    [ , [ @language = ] language ]
    [ , [ @type_colname = ] N'type_colname' ]
[ ; ]

引数

[ @tabname = ] N'tabname'

1 部構成または 2 部構成のテーブル名。 テーブルは、現在のデータベース内に存在している必要があります。 テーブルにフルテキスト インデックスがある。 @tabnameは nvarchar(517)で、既定値はありません。

[ @colname = ] N'colname'

@tabname内の列の名前。 列は、文字、 varbinary(max)、または イメージである必要があり、計算列にすることはできません。 @colnameは sysname で、既定値はありません。

SQL Server では、varbinary(max) またはイメージ データ型の列に格納されているテキスト データのフルテキスト インデックスを作成できます。 画像と画像はインデックス付けされません。

[ @action = ] 'action'

実行するアクション。 @actionは varchar(20) で、既定値はなく、次のいずれかの値を指定できます。

Value 説明
add テーブルの非アクティブなフルテキスト インデックスに@tabnameの@colnameを追加します。 このアクションにより、列のフルテキスト インデックス作成が有効になります。
drop テーブルの非アクティブなフルテキスト インデックスから@tabnameの@colnameを削除します。

[ @language = ] 言語

列に格納されているデータの言語。 @languageは int で、既定値は NULL. SQL Server に含まれる言語の一覧については、「sys.fulltext_languages (Transact-SQL)」を参照してください

Note

列に複数の言語またはサポートされていない言語のデータが含まれている場合に使用 Neutral します。 既定値は、サーバー構成オプション の既定のフルテキスト言語で指定されます。

[ @type_colname = ] N'type_colname'

@colnameのドキュメントの種類を保持する@tabname内の列名前。 この列は、char、ncharvarchar、または nvarchar である必要があります。 これは、@colnameデータ型が varbinary(max) または imageの場合にのみ使用されます。 @type_colnameは sysname で、既定値は NULL.

リターン コードの値

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

結果セット

ありません。

解説

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

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

アクセス許可

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

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

USE AdventureWorks2022;
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

Note

1 つのフルテキスト クエリ関数句に一覧表示されるすべての列は、同じ言語を使用する必要があります。