定义引用行的备用键
备用键提供准确有效的方式将数据与外部系统集成。 当外部系统不存储在 Microsoft Dataverse 中唯一标识行的全局唯一标识符 (GUID) ID 时这非常重要。
数据集成系统使用备用键来使用表示唯一组合的一个或多个表列值唯一标识行。 每个备用键都有一个唯一名称。
例如,若要使用备用键标识客户行,您可以结合使用客户编号或客户编号列与其他一些列(包含不应更改的值)。
备注
尽管您可以通过 Power Apps 定义备用键,在代码中,它们只能通过编程方式使用。 若要了解以编程方式使用备用键的详细信息,请参阅:
备用键功能的一些好处包括:
- 更快地查找行。
- 更可靠的批量数据操作。
- 利用从不含行 ID 的外部系统导入的数据简化编程。
创建备用键
有两个设计器可以用来创建备用键:
设计器 | 说明 |
---|---|
Power Apps 门户 | 提供简单的简化体验,但是有些选项不可用。 详细信息:使用 Power Apps 门户定义备用键 |
解决方案资源管理器 | 不那么简单,但提供更多灵活性可减少常见要求。 详细信息:使用解决方案资源管理器定义备用键 |
本文中的信息将帮助您选择可以使用的设计器。
除非您需要满足下列要求中的任何一个,否则您应该使用 Power Apps 门户创建备用键:
- 在 Common Data Service 默认解决方案以外的解决方案中创建备用键。
- 您希望轻松跟踪所创建的跟踪支持索引创建进度的系统作业。
创建备用键的限制
备用键创建存在一些约束。
可以用于备用键的字段
仅以下这些列类型可以用于创建备用键:
- 小数
- 整数
- 单行文本(字符串)
- 日期和时间
- 查找
- 单选
备注
- 启用了启用列安全性属性的列不能用作备用键。 详细信息:字段安全性表
- 当在备用键列中使用 NULL 值时,不会强制唯一性。 为了避免重复记录,请勿在备用键的唯一约束中定义的列中使用 NULL 值。
键数
您最多可以为一个表定义 10 个不同的键。
有效的键大小
当创建键时,系统会验证该键是否受平台支持,包括键总大小不能违反基于 SQL 的索引约束,如每个键 900 个字节和 16 列。 如果键大小不满足约束,将显示一条错误消息。
键值中的 Unicode 字符
如果用于备用键的列内的数据包含以下字符之一:<
、>
、*
、%
、&
、:
、/
、\\
、#
,update 或 upsert (PATCH) 操作将无法运行。
如果只需要唯一性,此方法有效,但如果需要使用这些键作为数据集成的一部分,最好在不包含具有这些字符的数据的列中创建键。
跟踪备用键的创建状态
当创建备用键时,它将启动系统作业来在数据库表上创建索引,以对备用键使用的列强制执行唯一约束。 在创建这些索引之前,备用键不会生效。 创建这些索引可能需要花费一些时间,具体取决于系统中的数据量。
系统作业的状态确定备用键的状态。 备用键可能具有以下状态:
- 挂起
- 正在进行
- Active
- 失败
在系统作业完成时,备用键状态为可用,它可供使用。
如果系统作业失败,请找到系统作业查看错误。 系统作业将有一个这样格式的名称:Create index for {0} for table {1}
,其中 0
是备用键的显示名称,1
是表的名称。
备注
如果要监视系统作业的状态,应该使用解决方案资源管理器来创建索引。 它将包含系统作业的链接,以便您可以进行监视。 详细信息:(可选)查看跟踪索引创建的系统作用
另请参阅
使用 Power Apps 门户定义备用键
使用解决方案资源管理器定义备用键
开发人员文档:定义表的备用键
开发人员文档:使用备用键创建行