sp_fulltext_column (Transact-SQL)
適用対象: SQL Server Azure Synapse Analytics
テーブルの特定の列がフルテキスト インデックス作成に参加するかどうかを指定します。
重要
この機能は、 SQL Serverの将来のバージョンで削除される予定です。 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。 代わりに、
構文
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)、または image である必要があり、計算列にすることはできません。 @colname は sysname で、既定値はありません。
SQL Server では、 varbinary(max) または image データ型の列に格納されているテキスト データのフルテキスト インデックスを作成できます。 画像と画像はインデックス付けされません。
[ @action = ] 'action'
実行するアクション。 @action は varchar(20)で、既定値はなく、次のいずれかの値を指定できます。
Value | 説明 |
---|---|
add | テーブルの非アクティブなフルテキスト インデックスに@tabnameの@colnameを追加します。 このアクションにより、列のフルテキスト インデックス作成が有効になります。 |
drop | テーブルの非アクティブなフルテキスト インデックスから@tabnameの@colnameを削除します。 |
[ @language = ] language
列に格納されているデータの言語。 @language は int で、既定値は NULL
です。 SQL Server に含まれる言語の一覧については、 sys.fulltext_languagesを参照してください。
Note
列に複数の言語またはサポートされていない言語のデータが含まれている場合は、 Neutral
を使用します。 既定値は、サーバー構成オプション 既定のフルテキスト言語で指定されます。
[ @type_colname = ] N'type_colname'
@colnameのドキュメントの種類を保持する@tabname内の列の名前。 この列は、 char、 nchar、 varchar、または 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)');
結果セットには、trabajo
、trabajamos
、trabajan
など、さまざまな形式のtrabajar
(機能する) を持つ行が含まれます。
Note
1 つのフルテキスト クエリ関数句に一覧表示されるすべての列は、同じ言語を使用する必要があります。