Share via


sp_fulltext_column (Transact-SQL)

指定資料表的特定資料行是否參與全文檢索索引。

重要注意事項重要事項

未來的 Microsoft SQL Server 版本將移除這項功能。請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。 改用 ALTER FULLTEXT INDEX

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

語法

sp_fulltext_column [ @tabname= ] 'qualified_table_name' , 
     [ @colname= ] 'column_name' , 
     [ @action= ] 'action' 
     [ , [ @language= ] 'language_term' ] 
     [ , [ @type_colname= ] 'type_column_name' ]

引數

  • [ @tabname= ] 'qualified_table_name'
    這是一段式或兩部份的資料表名稱。資料表必須在目前的資料庫中。這份資料表必須有全文檢索索引。qualified_table_name 是 nvarchar(517),沒有預設值。

  • [ @colname= ] 'column_name'
    這是 qualified_table_name 中的資料行名稱。這個資料行必須是 character、varbinary(max) 或 image 資料行,且不能是計算資料行。column_name 是 sysname,沒有預設值。

    [!附註]

    SQL Server 可以建立 varbinary(max) 或 image 資料類型的資料行所儲存之文字資料的全文檢索索引。影像和圖片沒有索引。

  • [ @action= ] 'action'
    這是要執行的動作。action 是 varchar(20),沒有預設值,它可以是下列值之一。

    描述

    add

    將 qualified_table_name 的 column_name 加入資料表的非使用中全文檢索索引中。這個動作會啟用全文檢索索引的資料行。

    drop

    從資料表的非使用中全文檢索索引中,移除 qualified_table_name 的 column_name。

  • [ @language= ] 'language_term'
    這是資料行所儲存之資料的語言。如需 SQL Server 所包含的語言清單,請參閱<sys.fulltext_languages (Transact-SQL)>。

    [!附註]

    當資料行包含的資料有多種語言或不受支援的語言時,請使用「中性」語言。[預設全文檢索語言] 組態選項指定這個預設值。

  • [ @type_colname = ] 'type_column_name'
    這是在 qualified_table_name 中,用於主控 column_name 之文件類型的資料行名稱。這個資料必須是 char、nchar、varchar 或 nvarchar。只有當 column_name 的資料類型是 varbinary(max) 或 image 類型時,才會使用它。type_column_name 是 sysname,沒有預設值。

傳回碼值

0 (成功) 或 1 (失敗)

結果集

備註

如果全文檢索索引在使用中,任何進行中的擴展都會停止。此外,如果含有使用中的全文檢索索引之資料表啟用了變更追蹤,SQL Server 會確保這是目前的索引。例如,SQL Server 會停止資料表任何目前的擴展動作、卸除現有的索引,再啟動新的擴展動作。

如果已開啟變更追蹤,且既要保留索引,又必須在全文檢索索引中加入或卸除資料行,就應該停用資料表,再加入或卸除必要的資料行。這些動作會凍結索引。稍後,當開始擴展確實可行時,您可以再啟動這份資料表。

權限

使用者必須是 db_ddladmin 固定資料庫角色的成員,或 db_owner 固定資料庫角色的成員,或是資料表的擁有者。

範例

下列範例將 Document 資料表的 DocumentSummary 資料行加入資料表的全文檢索索引中。

USE AdventureWorks;
GO
EXEC sp_fulltext_column 'Production.Document', DocumentSummary, 'add';
GO

下列範例假設您在名稱為 spanishTbl 的資料表上,建立了全文檢索索引。若要將 spanishCol 資料行加入全文檢索索引中,請執行下列預存程序:

EXEC sp_fulltext_column 'spanishTbl', 'spanishCol', 'add', 0xC0A;
GO

當您執行這個查詢時:

SELECT * 
FROM spanishTbl 
WHERE CONTAINS(spanishCol, 'formsof(inflectional, trabajar)')

結果集會包括含有不同形式的 trabajar (如 trabajo、trabajamos 和 trabajan) 的資料列 (才能運作)。

[!附註]

單一全文檢索查詢函數子句中所列出的所有資料行,都必須使用相同的語言。