sp_fulltext_column (Transact-SQL)
適用於:SQL Server Azure Synapse Analytics
指定數據表的特定資料行是否參與全文檢索索引。
重要
SQL Server 的未來版本將移除此功能。 請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。 請改用 ALTER FULLTEXT INDEX 。
語法
sp_fulltext_column
[ @tabname = ] N'tabname'
, [ @colname = ] N'colname'
, [ @action = ] 'action'
[ , [ @language = ] language ]
[ , [ @type_colname = ] N'type_colname' ]
[ ; ]
引數
[ @tabname = ] N'tabname'
一部分或兩部分數據表名稱。 數據表必須存在於目前的資料庫中。 資料表必須具有全文檢索索引。 @tabname為 nvarchar(517),沒有預設值。
[ @colname = ] N'colname'
@tabname 中的數據行名稱。 數據行必須是字元、 varbinary(max)或 image,而且不能是計算數據行。 @colname為 sysname,沒有預設值。
SQL Server 可以建立儲存在 varbinary(max) 或 image 數據類型之數據行中之文字數據的全文檢索索引。 影像和圖片不會編製索引。
[ @action = ] 'action'
要執行的動作。 @action為 varchar(20),沒有預設值,而且可以是下列其中一個值。
值 | Description |
---|---|
add | 將@colname@tabname新增至數據表的非使用中全文檢索索引。 此動作會啟用全文檢索索引的數據行。 |
卸除 | 從數據表的非使用中全文檢索索引中移除@tabname@colname。 |
[ @language = ] 語言
儲存在數據行中的數據語言。 @language為 int,預設值為 NULL
。 如需 SQL Server 中包含的語言清單,請參閱 sys.fulltext_languages。
注意
當資料列包含多種語言或不支援的語言中的數據時,請使用 Neutral
。 預設是由伺服器組態選項 預設全文檢索語言所指定。
[ @type_colname = ] N'type_colname'
@tabname中保存@colname檔類型的數據行名稱。 此數據行必須是 char、 nchar、 varchar 或 nvarchar。 只有當@colname數據類型為 varbinary(max) 或 image 時,才會使用。 @type_colname為 sysname,預設值為 NULL
。
傳回碼值
0
(成功) 或 1
(失敗)。
結果集
無。
備註
如果全文檢索索引為使用中,則會停止任何進行中的母體擴展。 此外,如果具有使用中全文檢索索引的數據表已啟用變更追蹤,SQL Server 會確保索引是最新的。 例如,SQL Server 會停止數據表上任何目前的母體擴展、卸除現有的索引,然後啟動新的母體擴展。
如果變更追蹤已開啟,而且數據行必須從全文檢索索引新增或卸除,同時保留索引時,應該停用數據表,而且應該加入或卸除必要的數據行。 這些動作會凍結索引。 啟動母體擴展時,稍後可以啟動數據表。
權限
用戶必須是db_ddladmin固定資料庫角色的成員,或是db_owner固定資料庫角色的成員,或是數據表的擁有者。
範例
下列範例會將 DocumentSummary
數據表中的數據 Document
行新增至數據表的全文檢索索引。
USE AdventureWorks2022;
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
。
注意
單一全文檢索查詢函式子句中列出的所有數據行都必須使用相同的語言。