次の方法で共有


sp_fulltext_column (Transact-SQL)

適用対象: SQL Server Azure 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 部構成のテーブル名。 テーブルは、現在のデータベース内に存在している必要があります。 テーブルにフルテキスト インデックスがある。 @tabnamenvarchar(517) で、既定値はありません。

[ @colname = ] N'colname'

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

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

[ @action = ] 'action'

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

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

[ @language = ] language

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

Note

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

[ @type_colname = ] N'type_colname'

@colnameのドキュメントの種類を保持する@tabname内の列の名前。 この列は、 charncharvarchar、または nvarchar である必要があります。 @colnameのデータ型が varbinary(max) または image の場合にのみ使用されます。 @type_colnamesysname で、既定値は 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)');

結果セットには、trabajotrabajamostrabajanなど、さまざまな形式のtrabajar (機能する) を持つ行が含まれます。

Note

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