CREATE SEARCH PROPERTY LIST (Transact-SQL)

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

重要事項重要事項

只在相容性層級 110 支援 CREATE SEARCH PROPERTY LIST、ALTER SEARCH PROPERTY LISTDROP SEARCH PROPERTY LIST。 在較低的相容性層級下,則不支援這些陳述式。

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

語法

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

引數

  • 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 AdventureWorks;
ALTER FULLTEXT INDEX ON Production.Document 
   SET SEARCH PROPERTY LIST DocumentPropertyList
   WITH NO POPULATION; 
GO 

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

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

CREATE SEARCH PROPERTY LIST JobCandidateProperties FROM AdventureWorks.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 與屬性整數識別碼