sp_fulltext_table (Transact-SQL)

標示或取消標示全文檢索索引的資料表。

ms187960.note(zh-tw,SQL.90).gif重要事項:
未來的 Microsoft SQL Server 發行版本將不再提供此功能。請避免在新的開發工作中使用此功能,並計劃修改目前使用此功能的應用程式。 請改用新的全文檢索資料定義語言 (DDL) 陳述式。如需詳細資訊,請參閱 CREATE、ALTER 和 DROP FULLTEXT INDEX 主題。

主題連結圖示Transact-SQL 語法慣例

語法

sp_fulltext_table 
   [ @tabname= ] 'qualified_table_name'               , [ @action= ] 'action' 
   [ 
      , [ @ftcat= ] 'fulltext_catalog_name'               , [ @keyname= ] 'unique_index_name' 
   ]

引數

[ @tabname= ] 'qualified_table_name'

這是一段式或兩部份的資料表名稱。資料表必須在目前的資料庫中。qualified_table_namenvarchar(517),沒有預設值。

[ @action=] 'action'

這是要執行的動作。actionnvarchar(50),沒有預設值,它可以是下列值之一。

描述

Create

建立 qualified_table_name 所參考的資料表之全文檢索索引的中繼資料,以及指定這份資料表的全文檢索索引資料應該在 fulltext_catalog_name 中。這個動作也指定利用 unique_index_name 來作為全文檢索索引鍵資料行。這個唯一索引必須已經存在,且必須定義在資料表的某個資料行中。

在擴展全文檢索目錄之前,您無法執行這份資料表的全文檢索搜尋。

Drop

卸除 qualified_table_name 之全文檢索索引中的中繼資料。如果全文檢索索引在使用中,在卸除之後,也會自動停用。在卸除全文檢索索引之前,不需要移除資料行。

Activate

在停用收集 qualified_table_name 之全文檢索索引資料的能力之後,啟動這個能力。至少必須有一個資料行參與全文檢索索引,您才能啟動它。

只要加入了第一個索引資料行,全文檢索索引就會自動成為使用中 (以便擴展)。如果從索引中卸除最後一個資料行,索引便會成為非使用中。如果變更追蹤是開啟的,啟動非作用中的索引會啟動新的擴展。

請注意,這並不會實際擴展全文檢索索引,只會在檔案系統的全文檢索目錄中登錄這份資料表,以便在下次擴展全文檢索索引期間,供您擷取 qualified_table_name 中的資料列。

Deactivate

停用 qualified_table_name 的全文檢索索引,無法再收集 qualified_table_name 的全文檢索索引資料。仍會保留全文檢索索引中繼資料,且可以重新啟動資料表。

如果變更追蹤是開啟的,停用使用中的索引會凍結索引狀態:任何進行中的擴展都會停止,不會再將任何其他變更傳播給索引。

start_change_tracking

啟動全文檢索索引的累加擴展。如果資料表沒有時間戳記,便啟動全文檢索索引的完整擴展。啟動資料表的變更追蹤。

全文檢索變更追蹤開啟不會在 imagetextntext 類型的全文檢索索引資料行上,追蹤任何 WRITETEXT 或 UPDATETEXT 作業。

stop_change_tracking

停止資料表的追蹤變更。

update_index

將目前追蹤的這組變更傳播給全文檢索索引。

Start_background_updateindex

在發生追蹤的變更時,開始將這些變更傳播給全文檢索索引。

Stop_background_updateindex

在發生追蹤的變更時,停止將這些變更傳播給全文檢索索引。

start_full

啟動資料表的全文檢索索引的完整擴展。

start_incremental

啟動資料表的全文檢索索引的累加擴展。

Stop

停止完整或累加擴展。

[ @ftcat=] 'fulltext_catalog_name'

這是 create 動作之有效的現有全文檢索目錄名稱。所有其他動作的這個參數都必須是 NULL。fulltext_catalog_namesysname,預設值是 NULL。

[ @keyname=] 'unique_index_name'

這是 create 動作在 qualified_table_name 上的索引,它是有效的單索引鍵資料行索引,而且是不可設為 Null 的唯一索引。所有其他動作的這個參數都必須是 NULL。unique_index_namesysname,預設值是 NULL。

傳回碼值

0 (成功) 或 1 (失敗)

結果集

備註

在停用特定資料表的全文檢索索引之後,現有全文檢索索引會留在原來的位置,直到下一次完整擴展;不過,這個索引並不會用到,因為 Microsoft SQL Server 會封鎖已停用之資料表的查詢。

如果重新啟動資料表,且沒有重新擴展索引,任何其餘啟用全文檢索的非新增資料行的查詢,仍可以使用舊索引。在指定全部全文檢索資料行搜尋的查詢中,會符合已刪除的資料行之資料。

在定義好全文檢索索引的資料表之後,將全文檢索唯一索引鍵資料行的資料類型切換成另一個資料類型,不論是藉由變更這個資料行的資料類型,或藉著將全文檢索唯一索引鍵的資料行改成另一個資料行,只要沒有完整重新擴展,都可能使後續查詢失敗並傳回下列錯誤訊息:「全文檢索搜尋索引鍵值 key_value 轉換成 data_type 類型失敗」。若要防止這個情況,請利用 sp_fulltext_tabledrop 動作來卸除這份資料表的全文檢索定義,再利用 sp_fulltext_tablesp_fulltext_column 來重新定義它。

全文檢索索引鍵資料行必須定義成 900 位元組或以下。基於效能的考量,建議您索引鍵資料行的大小,愈小愈好。

權限

只有系統管理員 (sysadmin) 固定伺服器角色、db_ownerdb_ddladmin 固定資料庫角色的成員,或有全文檢索目錄參考權限的使用者可以執行 sp_fulltext_table

範例

A. 啟用資料表的全文檢索索引

下列範例會建立 AdventureWorks 資料庫 Document 資料表的全文檢索索引中繼資料。Cat_Desc 是一個全文檢索目錄。PK_Document_DocumentIDDocument 的唯一單一資料行索引。

USE AdventureWorks;
GO
EXEC sp_fulltext_table 'Production.Document', 'create', 'Cat_Desc', 'PK_Document_DocumentID';
--Add some columns
EXEC sp_fulltext_column 'Production.Document','DocumentSummary','add';
-- Activate the full-text index
EXEC sp_fulltext_table 'Production.Document','activate';
GO

B. 啟動和傳播追蹤變更

下列範例會在發生追蹤的變更時,啟動傳播,開始將這些變更傳播給全文檢索索引。

USE AdventureWorks;
GO
EXEC sp_fulltext_table 'Production.Document', 'Start_change_tracking';
EXEC sp_fulltext_table 'Production.Document', 'Start_background_updateindex';
GO

C. 移除全文檢索索引

這個範例會移除 AdventureWorks 資料庫 Document 資料表的全文檢索索引中繼資料。

USE AdventureWorks;
GO
EXEC sp_fulltext_table 'Production.Document', 'drop';
GO

請參閱

參考

INDEXPROPERTY (Transact-SQL)
OBJECTPROPERTY (Transact-SQL)
sp_help_fulltext_tables (Transact-SQL)
sp_help_fulltext_tables_cursor (Transact-SQL)
sp_helpindex (Transact-SQL)
系統預存程序 (Transact-SQL)
全文檢索搜尋預存程序 (Transact-SQL)

說明及資訊

取得 SQL Server 2005 協助