sp_fulltext_catalog (Transact-SQL)
フルテキスト カタログの作成と削除、およびカタログのインデックス作成の開始と中止を行います。データベースごとに複数のフルテキスト カタログを作成できます。
重要 : |
---|
sp_fulltext_catalog ストアド プロシージャは、将来のバージョンの SQL Server で削除される予定です。新しい開発作業では、この機能の使用を避け、現在このストアド プロシージャを使用しているアプリケーションは修正するようにしてください。代わりに新しいフルテキスト データ定義言語 (DDL) ステートメントを使用してください。詳細については、CREATE、ALTER、DROP FULLTEXT CATALOG の各トピックを参照してください。 |
構文
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_name と root_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_catalog に start_full または start_incremental アクションを指定して実行する必要があります。
[ @path=] 'root_directory'
create アクションのルート ディレクトリです。物理的なフル パスではありません。root_directory のデータ型は nvarchar(100) で、既定値は NULL です。この場合、セットアップ時に指定された既定の場所が使用されます。これは、Mssql ディレクトリ内の Ftdata サブディレクトリです。たとえば、C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\FTData がこれに相当します。指定するルート ディレクトリは、同じコンピュータ上のドライブに存在している必要があります。ルート ディレクトリ名には、ドライブ文字だけを指定したり、相対パスを指定することはできません。ネットワーク ドライブ、リムーバブル ドライブ、フロッピー ディスク、および UNC パスはサポートされていません。フルテキスト カタログは、SQL Server インスタンスに関連付けられているローカル ハード ドライブ上に作成する必要があります。@path は、action が create の場合にのみ有効です。create 以外のアクション (stop、rebuild など) の場合は、@path を NULL にするか省略します。
SQL Server インスタンスがクラスタ内の仮想サーバーの場合、指定するカタログ ディレクトリは、SQL Server リソースが依存する共有ディスク ドライブ上にある必要があります。@path を指定しない場合、既定のカタログ ディレクトリの場所は、共有ディスク ドライブ上の、仮想サーバーのインストール時に指定したディレクトリになります。
結果セット
なし
解説
fulltext_catalog_name でフルテキスト データの完全なスナップショットを作成するには、start_full アクションを使用します。データベースで変更された行についてのみインデックスを再作成するには、start_incremental アクションを使用します。増分作成は、テーブルに timestamp 型の列がある場合のみ指定できます。フルテキスト カタログ内のテーブルに timestamp 型の列が含まれていない場合、そのテーブルでは完全作成が行われます。
フルテキスト カタログおよびインデックス データは、フルテキスト カタログ ディレクトリに作成したファイルに格納されます。フルテキスト カタログ ディレクトリは、@path で指定したディレクトリのサブディレクトリとして作成されます。@path を指定しない場合は、サーバーの既定のフルテキスト カタログ ディレクトリにサブディレクトリが作成されます。フルテキスト カタログ ディレクトリの名前は、サーバー上で一意になるように作成されます。したがって、特定のサーバー上のすべてのフルテキスト カタログ ディレクトリで、同じパスを共有できます。
権限
このストアド プロシージャを呼び出すには、db_owner ロールのメンバであることが必要です。必要なアクションに応じて、ユーザーは対象のフルテキスト カタログに対し、(db_owner が持つ) ALTER または CONTROL 権限を持っている必要があります。
戻り値
0 (成功) または 1 (失敗)
例
A. フルテキスト カタログを作成する
次の例では、AdventureWorks データベースに空のフルテキスト カタログ Cat_Desc を作成します。
USE AdventureWorks;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'create';
GO
B. フルテキスト カタログを再構築する
次の例では、AdventureWorks データベースで既存のフルテキスト カタログ Cat_Desc を再構築します。
USE AdventureWorks;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'rebuild';
GO
C. フルテキスト カタログの作成を開始する
次の例では、Cat_Desc カタログの完全作成を開始します。
USE AdventureWorks;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'start_full';
GO
D. フルテキスト カタログの作成を中止する
次の例では、Cat_Desc カタログの作成を中止します。
USE AdventureWorks;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'stop';
GO
E. フルテキスト カタログを削除する
次の例では、Cat_Desc カタログを削除します。
USE AdventureWorks;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'drop';
GO
参照
関連項目
FULLTEXTCATALOGPROPERTY (Transact-SQL)
sp_fulltext_database (Transact-SQL)
sp_help_fulltext_catalogs (Transact-SQL)
sp_help_fulltext_catalogs_cursor (Transact-SQL)
システム ストアド プロシージャ (Transact-SQL)