本文提供一個可直接執行的完整腳本,示範在 `pubs` 資料庫上為 `title` 表的 `title`、`notes` 欄位建立全文索引,並驗證查詢效果。
USE pubs;
GO
-- 1. 啟用全文功能
IF (SELECT DATABASEPROPERTY('pubs', 'IsFulltextEnabled')) = 0
EXEC sp_fulltext_database 'enable';
-- 2. 建立全文目錄
EXEC sp_fulltext_catalog 'FT_pubs', 'create';
-- 3. 註冊 title 表(需唯一索引 UPKCL_titleidind)
EXEC sp_fulltext_table 'title', 'create', 'FT_pubs', 'UPKCL_titleidind';
-- 4. 指定索引欄位
EXEC sp_fulltext_column 'title', 'title', 'add';
EXEC sp_fulltext_column 'title', 'notes', 'add';
-- 5. 啟用全文檢索
EXEC sp_fulltext_table 'title', 'activate';
-- 6. 開始完全填充
EXEC sp_fulltext_catalog 'FT_pubs', 'start_full';
GO
-- 等待填充完成
WHILE FULLTEXTCATALOGPROPERTY('FT_pubs', 'PopulateStatus') <> 0
BEGIN
WAITFOR DELAY '00:00:30';
END
-- 7. 全文查詢驗證
SELECT title
FROM title
WHERE CONTAINS(title, 'database')
OR CONTAINS(title, 'computer')
OR CONTAINS(notes, 'database')
OR CONTAINS(notes, 'computer');
| 程序 | 權限 | 用途 |
|---|---|---|
| sp_fulltext_service | serveradmin / sysadmin | 設定全文搜尋屬性 |
| sp_fulltext_catalog | db_owner+ | 建立/刪除目錄、啟動/停止填充 |
| sp_fulltext_database | db_owner | 啟用/停用資料庫全文功能 |
| sp_fulltext_table | db_ddladmin / db_owner | 標識表為全文索引表、啟用/停用 |
| sp_fulltext_column | db_ddladmin | 指定欄位加入/移出全文索引 |