适用于:SQL Server
Azure SQL 数据库
Azure 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 所指定的数据库中的现有用户 ID 关联。 还必须拥有针对数据库的必需权限。
source_list_name
指定通过从 database_name 中复制现有属性列表来创建新属性列表。 如果 source_list_name 不存在,则 CREATE SEARCH PROPERTY LIST 会出错。 source_list_name 中的搜索属性由 new_list_name 继承。
AUTHORIZATION
owner_name
指定要拥有属性列表的用户或角色的名称。 owner_name 必须是当前用户所属的角色的名称,或当前用户必须具有对 owner_name 的 IMPERSONATE 权限。 如果未指定,则所有权授予当前用户。
注意
所有者可以通过使用 ALTER AUTHORIZATIONTransact-SQL 声明来更改。
注解
注意
有关属性列表的一般信息,请参阅使用搜索属性列表搜索文档属性。
默认情况下,新的搜索属性列表为空,必须手动对其进行修改,以添加一个或多个搜索属性。 或者,您也可以复制现有的搜索属性列表。 在此情况下,新列表将继承其源的搜索属性,但您可以修改新列表,以添加或删除搜索属性。 在下一次完全填充时搜索属性列表中的所有属性都将包括在全文检索中。
在以下任一条件下,陈 CREATE SEARCH PROPERTY LIST 述都失败:
database_name 指定的数据库不存在。
source_list_name 指定的列表不存在。
没有适当的权限。
在列表中添加或删除属性
权限
要求 CREATE FULLTEXT CATALOG 当前数据库的权限,以及复制源属性列表时的任何数据库的参考权限。
注意
若要将列表与全文检索关联,需要拥有 REFERENCE 权限。 若要添加和移除属性或删除列表,需要拥有 CONTROL 权限。 属性列表所有者可以授予对列表的 REFERENCE 或 CONTROL 权限。 拥有 CONTROL 权限的用户还可以向其他用户授予 REFERENCES 权限。
示例
A. 创建空属性列表并将其与索引关联
以下示例创建名为 DocumentPropertyList 的新搜索属性列表。 示例随后使用语ALTER FULLTEXT INDEX句将新属性列表与数据库中AdventureWorks表的全文索引Production.Document关联,而无需开始一个总体。
注意
关于向该搜索属性列表添加若干预定义且知名的搜索属性的示例,请参见 ALTER SEARCH PROPERTY LIST (Transact-SQL)。 在向列表添加搜索属性后,数据库管理员需要使用带有 START FULL POPULATION 子句的另一个 ALTER FULLTEXT INDEX 语句。
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 创建的列表 JobCandidateProperties(它与 DocumentPropertyList 数据库中的全文检索关联)创建一个新的搜索属性列表 AdventureWorks2025。 示例随后使用语ALTER FULLTEXT INDEX句将新属性列表与数据库中AdventureWorks2025表的HumanResources.JobCandidate全文索引关联起来。 该 ALTER FULLTEXT INDEX 语句开始一个完整的群体,这是该 SETSEARCH 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 和属性整数 ID