Share via


sp_fulltext_catalog (Transact-SQL)

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

重要な注意事項重要

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

トピック リンク アイコンTransact-SQL 構文表記規則

構文

sp_fulltext_catalog [ @ftcat= ] 'fulltext_catalog_name' , 
     [ @action= ] 'action' 
     [ , [ @path= ] 'root_directory' ] 

引数

  • [ @ftcat=] 'fulltext_catalog_name'
    フルテキスト カタログの名前を指定します。カタログ名は各データベース内で一意である必要があります。fulltext_catalog_name のデータ型は sysname です。

  • [ @action=] 'action'
    実行するアクションを指定します。action のデータ型は varchar(20) で、次のいずれかの値を指定できます。

    注意

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

    説明

    Create

    ファイル システムに空の新しいフルテキスト カタログを作成し、fulltext_catalog_nameroot_directory が存在する場合はその値を使用して、sysfulltextcatalogs 内に関連する行を追加します。データベース内で fulltext_catalog_name は一意である必要があります。

    Drop

    ファイル システムから該当ファイルを削除し、sysfulltextcatalogs 内の関連する行を削除することで、fulltext_catalog_name を削除します。このカタログに 1 つ以上のテーブルのインデックスが含まれている場合、このアクションは失敗します。カタログからテーブルを削除するには、sp_fulltext_table 'table_name','drop' を実行する必要があります。

    カタログが存在しない場合、エラーが表示されます。

    start_incremental

    fulltext_catalog_name の増分作成を開始します。カタログが存在しない場合、エラーが表示されます。フルテキスト インデックス作成が既にアクティブな場合、警告が表示され、作成は行われません。増分作成では、変更された行だけがフルテキスト インデックス作成用に取得されます。ただしフルテキスト インデックスが作成されるテーブルには、timestamp 列が含まれていることが前提となります。

    start_full

    fulltext_catalog_name の完全作成を開始します。既にインデックス作成が行われている場合でも、このフルテキスト カタログと関連するすべてのテーブルにあるすべての行が、フルテキスト インデックス作成用に取得されます。

    Stop

    fulltext_catalog_name のインデックス作成を中止します。カタログが存在しない場合、エラーが表示されます。インデックスの作成を既に中止している場合、警告は表示されません。

    Rebuild

    fulltext_catalog_name を再構築します。カタログの再構築では、既存のカタログが削除され、代わりに新しいカタログが作成されます。フルテキスト インデックスの参照を持つすべてのテーブルが新しいカタログに関連付けられます。再構築すると、データベース システム テーブル内のフルテキスト メタデータがリセットされます。

    変更の追跡がオフになっていると、再構築しても、新しく作成されたフルテキスト カタログにデータが再び追加されることはありません。その場合、データを再び追加するには、sp_fulltext_catalogstart_full または start_incremental アクションを指定して実行する必要があります。

  • [ @path=] 'root_directory'
    create アクションのルート ディレクトリです。物理的なフル パスではありません。root_directory のデータ型は nvarchar(100) で、既定値は NULL です。この場合、セットアップ時に指定された既定の場所が使用されます。これは Mssql ディレクトリ内の Ftdata サブディレクトリです。たとえば、C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\FTData がこれに相当します。指定するルート ディレクトリは、同じコンピューター上のドライブに存在している必要があります。ルート ディレクトリ名には、ドライブ文字だけを指定したり、相対パスを指定することはできません。ネットワーク ドライブ、リムーバブル ドライブ、フロッピー ディスク、および UNC パスはサポートされていません。フルテキスト カタログは、SQL Server インスタンスに関連付けられているローカル ハード ドライブ上に作成する必要があります。

    @path は、actioncreate の場合にのみ有効です。create 以外のアクション (stoprebuild など) の場合は、@path を NULL にするか省略します。

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

リターン コード値

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

結果セット

なし

説明

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

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

権限

このストアド プロシージャを呼び出すには、db_owner ロールのメンバーであることが必要です。必要なアクションに応じて、ユーザーは対象のフルテキスト カタログに対し、(db_owner が持つ) ALTER または CONTROL 権限を持っている必要があります。

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

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

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

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

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

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

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

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

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

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

次の例では、Cat_Desc カタログの作成を中止します。

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

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

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

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