CREATE SEARCH PROPERTY LIST (Transact-SQL)

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體

建立新的搜尋屬性清單。 搜尋屬性清單用來指定您想要包含在全文檢索索引中的一個或多個搜尋屬性。

Transact-SQL 語法慣例

Syntax

CREATE SEARCH PROPERTY LIST new_list_name  
   [ FROM [ database_name. ] source_list_name ]  
   [ AUTHORIZATION owner_name ]  
;  

注意

若要檢視 SQL Server 2014 (12.x) 和舊版的 Transact-SQL 語法,請參閱 舊版檔

引數

new_list_name
這是新搜尋屬性清單的名稱。 new_list_name 是最多 128 個字元的識別碼。 new_list_name 在目前資料庫的所有屬性清單中必須是唯一的,且符合識別碼的規則。 在建立全文檢索索引時,會使用 new_list_name

database_name
這是 source_list_name 所指定之屬性清單所在的資料庫名稱。 如果未指定,database_name 會預設為目前的資料庫。

database_name 必須指定現有資料庫的名稱。 目前連線的登入必須與 database_name 所指定資料庫中的現有使用者識別碼建立關聯。 您也必須有資料庫的必要權限

source_list_name
指定要從 database_name 複製現有的屬性清單來建立新的屬性清單。 如果 source_list_name 不存在,CREATE SEARCH PROPERTY LIST 會失敗並出現錯誤。 new_list_name 會繼承 source_list_name 中的搜尋屬性。

AUTHORIZATION owner_name
指定擁有屬性清單的使用者或角色的名稱。 owner_name 必須是目前使用者所屬的角色名稱,或者目前使用者必須具有 owner_name 的 IMPERSONATE 權限。 若未指定,擁有權便歸目前使用者。

注意

您可以使用 ALTER AUTHORIZATION Transact-SQL 陳述式來變更擁有者。

備註

注意

如需屬性清單的一般資訊,請參閱使用搜尋屬性清單搜尋文件屬性

根據預設,新的搜尋屬性清單是空的,而且您必須改變它,才能手動加入一個或多個搜尋屬性。 或者,您也可以複製現有的搜尋屬性清單。 在此情況下,新的清單會繼承其來源的搜尋屬性,但是您可以改變新的清單以加入或移除搜尋屬性。 下次完整母體擴展時搜尋屬性清單中的任何屬性都會包含在全文檢索索引中。

在下列任何情況下,CREATE SEARCH PROPERTY LIST 陳述式會失敗:

  • 如果 database_name 所指定的資料庫不存在。

  • 如果 source_list_name 所指定的清單不存在。

  • 如果您沒有正確的權限。

新增或移除清單的屬性

權限

需要目前資料庫的 CREATE FULLTEXT CATALOG 權限,以及從中複製來源屬性清單的任何資料庫的 REFERENCES 權限。

注意

需要 REFERENCES 權限才能將清單與全文檢索索引產生關聯。 需要 CONTROL 權限才能新增和移除屬性或卸除清單。 屬性清單擁有者可以授與清單的 REFERENCES 或 CONTROL 權限。 具有 CONTROL 權限的使用者也可以將 REFERENCES 權限授與其他使用者。

範例

A. 建立空白屬性清單,並將它與索引建立關聯

下列範例會建立名為 DocumentPropertyList 的新搜尋屬性清單。 然後此範例使用 ALTER FULLTEXT INDEX 陳述式,將新屬性清單與 AdventureWorks 資料庫中 Production.Document 資料表的全文檢索索引建立關聯,但不啟動母體擴展。

注意

如需將數個預先定義的已知搜尋屬性新增至這個搜尋屬性清單的範例,請參閱 ALTER SEARCH PROPERTY LIST (Transact-SQL)。 在將搜尋屬性加入至清單之後,資料庫管理員需要使用另一個 ALTER FULLTEXT INDEX 陳述式搭配 START FULL POPULATION 子句。

CREATE SEARCH PROPERTY LIST DocumentPropertyList;  
GO  
USE AdventureWorks2022;  
ALTER FULLTEXT INDEX ON Production.Document   
   SET SEARCH PROPERTY LIST DocumentPropertyList  
   WITH NO POPULATION;   
GO   

B. 從現有屬性清單建立屬性清單

下列範例會從範例 A 所建立的清單 DocumentPropertyList (此清單與 AdventureWorks2022 資料庫中的全文檢索索引相關聯) 建立新的搜尋屬性清單 JobCandidateProperties。 然後此範例使用 ALTER FULLTEXT INDEX 陳述式,將新屬性清單與 HumanResources.JobCandidate 資料庫中 AdventureWorks2022 資料表的全文檢索索引產生關聯。 這個 ALTER FULLTEXT INDEX 陳述式會啟動完整母體擴展,這是 SET SEARCH PROPERTY LIST 子句的預設行為。

CREATE SEARCH PROPERTY LIST JobCandidateProperties 
FROM AdventureWorks2022.DocumentPropertyList;  
GO  
ALTER FULLTEXT INDEX ON HumanResources.JobCandidate   
   SET SEARCH PROPERTY LIST JobCandidateProperties;  
GO

另請參閱

ALTER SEARCH PROPERTY LIST (Transact-SQL)
DROP SEARCH PROPERTY LIST (Transact-SQL)
sys.registered_search_properties (Transact-SQL)
sys.registered_search_property_lists (Transact-SQL)
sys.dm_fts_index_keywords_by_property (Transact-SQL)
使用搜索屬性清單搜索文件屬性
尋找搜尋屬性的屬性集 GUID 與屬性整數識別碼