ALTER FULLTEXT INDEX (Transact-SQL)
更新: 2006 年 12 月 12 日
變更全文檢索索引的屬性。
語法
ALTER FULLTEXT INDEX ON table_name
{ ENABLE
| DISABLE
| SET CHANGE_TRACKING { MANUAL | AUTO | OFF }
| ADD ( column_name
[ TYPE COLUMN type_column_name ]
[ LANGUAGE language_term ] [,...n] )
[ WITH NO POPULATION ]
| DROP ( column_name [,...n] )
[WITH NO POPULATION ]
| START { FULL | INCREMENTAL | UPDATE } POPULATION
| { STOP | PAUSE | RESUME } POPULATION
}
引數
- table_name
這是包括在全文檢索索引中的一或多個資料行所在的資料表名稱。資料庫和資料表擁有者名稱的指定是選擇性的。
ENABLE | DISABLE
通知 Microsoft SQL Server 是否要收集 table_name 的全文檢索索引資料。ENABLE 會啟動全文檢索索引;DISABLE 會關閉全文檢索索引。當停用全文檢索索引時,全文檢索索引中繼資料會保留在系統資料表中。如果停用全文檢索索引時,CHANGE_TRACKING 在已啟用狀態 (自動或手動更新),索引狀態會凍結,任何進行中的編目都會停止,此時不會追蹤資料表資料的新變更,也不會將它們傳播到索引中。您可以利用 ENABLE 來重新啟動 table_name 的全文檢索索引。
SET CHANGE_TRACKING {MANUAL | AUTO | OFF}
指定 SQL Server 是否維護全文檢索目錄中索引資料之所有變更的清單。WRITETEXT 和 UPDATETEXT 的資料變更並不會反映在全文檢索索引中,變更的追蹤並不會取出它們。若要修改全文檢索索引的 CHANGE_TRACKING 狀態,全文檢索索引資料表所在的 FILEGROUP 不能設為 OFFLINE 或 READONLY。否則,命令會失敗,SQL Server 會傳回錯誤。
- MANUAL
指定要利用 SQL Server Agent 來依排程傳播變更追蹤記錄,或由使用者手動傳播變更追蹤記錄。
- AUTO
指定 SQL Server 依照相關資料表中所修改的資料來自動更新全文檢索索引。預設值是 AUTO。
- OFF
指定 SQL Server 不保留索引資料的變更清單。
ADD | DROP column_name
指定要在全文檢索索引中新增或刪除的資料行。這些資料行的類型必須是 char、varchar、nchar、nvarchar、text、ntext、image、xml 或 varbinary(max)。請只在先前已啟用了全文檢索索引的資料行上,使用 DROP 子句。
使用 TYPE COLUMN 和 LANGUAGE 來搭配 ADD 子句,在 column_name 上設定這些屬性。當新增資料行時,您必須重新擴展資料表的全文檢索索引,針對這個資料行的全文檢索查詢才能運作。
除非您指定了 WITH NO POPULATION,否則,SQL Server 會全文檢索索引加入或卸除資料行之後,自動啟動完整的擴展。
TYPE COLUMN type_column_name
這是在 table_name 中,用來主控 column_name 之文件類型的資料行名稱。只有當 column_name 資料行的類型是 varbinary(max) 或 image 時,才指定 type_column_name。TYPE COLUMN 的資料類型可以是 char、nchar、varchar 或 nvarchar。如需有關全文檢索支援的檔案格式及 varbinary(max) 資料行所儲存之索引資料的詳細資訊,請參閱<全文檢索搜尋篩選>。
LANGUAGE language_term
這是 column_name 所儲存之資料的語言。language_term 是選擇性的,可以指定成對應於語言地區設定識別碼 (LCID) 的字串、整數或十六進位值。如果指定了 language_term,就會將它代表的語言套用至搜尋條件的所有元素上。如果未指定任何值,就會使用 SQL Server 執行個體的預設全文檢索語言。
請利用 sp_configure 預存程序來存取 SQL Server 執行個體的預設全文檢索語言的相關資訊。如需詳細資訊,請參閱<default full-text language 選項>。
當指定為字串時,language_term 會對應到 syslanguages 系統資料表中的 alias 資料行值。字串必須以單引號括住,如 'language_term'。當指定為整數時,language_term 是用來識別語言的實際 LCID。當指定為十六進位值時,language_term 是 0x,後面接著 LCID 的十六進位值。十六進位值不能超出 8 位數,開頭的零也包括在內。
如果這個值是雙位元組字元集 (DBCS) 格式,SQL Server 會將它轉換成 Unicode。
您必須針對指定為 language_term 的語言來啟用資源,如斷詞工具和詞幹分析器。如果這些資源不支援指定的語言,SQL Server 會傳回錯誤。
如果是包含多種語言之文字資料的非 BLOB 和非 XML 資料行,或資料行所儲存的文字語言不明,請使用中性 (0x0) 語言資源。如果是儲存在 XML 或 BLOB 類型資料行的文件,在建立索引時,將使用文件內的語言編碼。例如,在 XML 資料行中,XML 文件的 xml:lang 屬性會識別語言。在查詢時,除非在全文檢索查詢中指定 language_term,否則,language_term 先前所指定的值會成為全文檢索查詢所用的預設語言。
- [ ,...n]
指出 ADD 或 DROP 子句可以指定多個資料行。當指定多個資料行時,請用逗號來分開這些資料行。
WITH NO POPULATION
指定在 ADD 或 DROP 資料行作業之後,不擴展全文檢索索引。只有在使用者執行 START...POPULATION 命令時,才擴展索引。如果既啟用 CHANGE_TRACKING,又指定 WITH NO POPULATION,SQL Server 會傳回錯誤。如果啟用了 CHANGE_TRACKING,但沒有指定 WITH NO POPULATION,SQL Server 會在建立好索引之後,執行索引的完整擴展。
只有在 CHANGE_TRACKING 是 OFF 時,才能使用 NO POPULATION 選項。當指定 NO POPULATION 時,在建立好索引之後,SQL Server 並不會擴展索引。只有在使用者提供了 ALTER FULLTEXT INDEX...START POPULATION 命令之後,才會擴展索引。當並未指定 NO POPULATION 時,在建立好索引之後,SQL Server 會擴展索引。
- START {FULL|INCREMENTAL|UPDATE} POPULATION
通知 SQL Server 來開始擴展 table_name 的全文檢索索引。如果全文檢索索引擴展已在進行中,SQL Server 會傳回警告,且不會開始新的擴展。
-
- FULL
指定全文檢索索引要擷取資料表的每個資料列,即使資料列已建立了索引也一樣。
- INCREMENTAL
指定全文檢索索引只擷取前次擴展之後又修改過的資料列。資料表必須有 timestamp 類型的資料行,INCREMENTAL 才適用。如果全文檢索目錄中的資料表並未包含 timestamp 類型的資料行,資料表就會進行 FULL 擴展。
- UPDATE
指定處理上次更新變更追蹤索引之後的所有插入、更新或刪除。資料表上必須啟用變更追蹤擴展,但不應開啟背景更新索引或自動變更追蹤。
- FULL
{STOP | PAUSE | RESUME } POPULATION
停止或暫停任何進行中的擴展動作,或是停止或繼續任何已暫停的擴展動作。STOP POPULATION 不會停止自動變更追蹤或背景更新索引。若要停止變更追蹤,請使用 SET CHANGE_TRACKING OFF。
PAUSE POPULATION 和 RESUME POPULATION 只適用於完全擴展。它們與其他擴展類型無關,因為其他擴展會從編目停止處繼續編目。
備註
當全文檢索搜尋建立 xml 資料類型資料之執行個體的索引時,索引中並不包含屬性和元素名稱,您將無法查詢它們;不過,您仍可以在每個執行個體中建立元素值的索引,以及查詢它們。包含多重語言的格式正確的 XML 文件和片段都受到支援。
權限
使用者必須具備資料表或檢視的 ALTER 權限,或必須是系統管理員 (sysadmin) 固定伺服器角色的成員,或是 db_ddladmin 或 db_owner 固定資料庫角色的成員。
範例
下列範例會修改 AdventureWorks
資料庫之 JobCandidate
資料表中的全文檢索索引。
USE AdventureWorks;
GO
ALTER FULLTEXT INDEX ON HumanResources.JobCandidate ENABLE;
GO
請參閱
參考
CREATE FULLTEXT INDEX (Transact-SQL)
DROP FULLTEXT INDEX (Transact-SQL)
其他資源
說明及資訊
變更歷程記錄
版本 | 歷程記錄 |
---|---|
2006 年 12 月 12 日 |
|