sp_fulltext_catalog (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

フルテキスト カタログの作成と削除、およびカタログのインデックス作成の開始と中止を行います。 データベースごとに複数のフルテキスト カタログを作成できます。

重要

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

Transact-SQL 構文表記規則

構文

sp_fulltext_catalog
    [ @ftcat = ] N'ftcat'
    , [ @action = ] 'action'
    [ , [ @path = ] N'path' ]
[ ; ]

引数

[ @ftcat = ] N'ftcat'

フルテキスト カタログの名前です。 カタログ名は、データベースごとに一意である必要があります。 @ftcatは sysname で、既定値はありません。

[ @action = ] 'action'

実行するアクション。 @actionは varchar(20) であり、これらの値のいずれかを指定できます。

Note

フルテキスト カタログは、必要に応じて作成、削除、および変更できます。 複数のカタログで同時にスキーマを変更することは避けてください。 これらのアクションは、ストアド プロシージャを sp_fulltext_table 使用して実行できます。これが推奨される方法です。

Value 説明
create ファイル システムに空の新しいフルテキスト カタログを作成し、関連付けられている行sysfulltextcatalogsを@ftcat@path (存在する場合) に追加します。 @ftcatデータベース内で一意である必要があります。
drop ファイル システムから削除し、関連付けられている行sysfulltextcatalogsを削除して、@ftcatを削除します。 このカタログに 1 つ以上のテーブルのインデックスが含まれている場合、このアクションは失敗します。 sp_fulltext_table '<table_name>', 'drop' は、カタログからテーブルを削除するために実行する必要があります。

カタログが存在しない場合は、エラーが表示されます。
start_incremental @ftcatの増分作成を開始します。 カタログが存在しない場合は、エラーが表示されます。 フルテキスト インデックスの作成が既にアクティブな場合は、警告が表示されますが、作成アクションは発生しません。 増分作成では、フルテキスト インデックス作成のために変更された行のみが取得されます。テーブルにフルテキスト インデックスが作成されているタイムスタンプ列がある場合。
start_full @ftcatの完全作成を開始します。 このフルテキスト カタログに関連付けられているすべてのテーブルのすべての行は、既にインデックスが作成されている場合でも、フルテキスト インデックス作成のために取得されます。
stop @ftcatのインデックス作成を停止します。 カタログが存在しない場合は、エラーが表示されます。 インデックスの作成を既に中止している場合、警告は表示されません。
再構築 @ftcatを再構築します。 カタログの再構築では、既存のカタログが削除され、代わりに新しいカタログが作成されます。 フルテキスト インデックスの参照を持つすべてのテーブルが新しいカタログに関連付けられます。 再構築すると、データベース システム テーブル内のフルテキスト メタデータがリセットされます。

変更の追跡がオフの場合、再構築しても、新しく作成されたフルテキスト カタログが再入力されることはありません。 この場合、再入力するには、start_fullまたはstart_incrementalアクションを使用して実行sp_fulltext_catalogします。

[ @path = ] N'path'

作成アクションのルート ディレクトリ (完全な物理パスではありません)。 @pathは nvarchar(100) で、既定値は NULL、セットアップ時に指定された既定の場所の使用を示します。

これはディレクトリ内MSSQLFTDataサブディレクトリです。たとえば、 C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\FTData 指定したルート ディレクトリは、同じコンピューター上のドライブ上に存在する必要があり、ドライブ文字以上で構成され、相対パスにすることはできません。 ネットワーク ドライブ、リムーバブル ドライブ、フロッピー ディスク、UNC パスはサポートされていません。 フルテキスト カタログは、SQL Server のインスタンスに関連付けられているローカル ハード ドライブに作成する必要があります。

@pathは、@actionの作成時にのみ有効です。 create (停止再構築など) 以外のアクションの場合、@pathは NULL または省略する必要があります。

SQL Server のインスタンスがクラスター内の仮想サーバーである場合、指定されたカタログ ディレクトリは、SQL Server リソースが依存する共有ディスク ドライブ上にある必要があります。 @path指定されていない場合、既定のカタログ ディレクトリの場所は、仮想サーバーのインストール時に指定されたディレクトリ内の共有ディスク ドライブにあります。

リターン コードの値

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

結果セット

ありません。

解説

start_fullアクションは、@ftcatでフルテキスト データの完全なスナップショットを作成するために使用されますstart_incrementalアクションは、データベース内の変更された行のインデックスを再作成するために使用されます。 増分作成は、テーブルに型 タイムスタンプの列がある場合にのみ適用できます。 フルテキスト カタログ内のテーブルに型 タイムスタンプの列が含まれていない場合、テーブルは完全に作成されます。

フルテキスト カタログおよびインデックス データは、フルテキスト カタログ ディレクトリに作成したファイルに格納されます。 フルテキスト カタログ ディレクトリは、@path指定されたディレクトリのサブディレクトリとして作成されます。指定されていない場合は、サーバーの既定のフルテキスト カタログ ディレクトリ@path作成されます。 フルテキスト カタログ ディレクトリの名前は、サーバー上で一意であることを保証する方法で構築されます。 そのため、サーバー上のすべてのフルテキスト カタログ ディレクトリで同じパスを共有できます。

アクセス許可

呼び出し元は、db_owner ロールのメンバーである必要があります。 要求されたアクションに応じて、呼び出し元は、ターゲットのフルテキスト カタログに対する ALTER または CONTROL のアクセス許可 (db_owner が持つ) を拒否しないでください。

A. フルテキスト カタログを作成する

この例では、 Cat_Desc空のフルテキスト カタログをデータベースに AdventureWorks2022 作成します。

USE AdventureWorks2022;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'create';
GO

B. フルテキスト カタログを再構築する

次の使用例は、 Cat_Descデータベース内の既存のフルテキスト カタログを AdventureWorks2022 再構築します。

USE AdventureWorks2022;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'rebuild';
GO

C: フルテキスト カタログの作成を開始する

この例では、カタログの完全な作成を Cat_Desc 開始します。

USE AdventureWorks2022;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'start_full';
GO

D. フルテキスト カタログの作成を停止する

次の使用例は、カタログの作成を Cat_Desc 停止します。

USE AdventureWorks2022;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'stop';
GO

E. フルテキスト カタログを削除する

この例では、カタログを削除します Cat_Desc

USE AdventureWorks2022;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'drop';
GO