使用 sql:identity 和 sql:guid 批注

适用于: SQL Server Azure SQL 数据库

可以在映射到 Microsoft SQL Server 中的数据库列的任何节点上的 XSD 架构中指定 sql:identitysql:guid 注释。 虽然 updategram 格式支持 updg:at-identityupdg:guid 属性,但 DiffGram 格式不支持。 updg:at-identity 属性定义更新 IDENTITY 类型列的行为。 updg :guid 属性允许从 SQL Server 获取 GUID 值,并在 updategram 中使用它。 有关详细信息和工作示例,请参阅使用 XML Updategram 插入数据(SQLXML 4.0)。

sql:identitysql:guid 批注将此功能扩展到 DiffGrams。

执行 DiffGram 时,应首先将其转换为 updategram,然后再执行该 updategram。 通过在 XSD 架构中指定 sql:identitysql:guid 注释,你实际上正在定义 updategram 的行为。 因此,所有批注都在 updategram 的上下文中进行描述。 这些批注可用于 DiffGram 和 updategram;但是,updategram 已提供了一种更强大的处理标识和 GUID 值的方式。

可以在复杂内容元素上定义 sql:identitysql:guid 批注。

sql:identity 批注

可以在映射到 IDENTITY 类型数据库列的任何节点上的 XSD 架构中指定 sql:identity 注释。 为此批注指定的值定义如何更新 IDENTITY 类型列(通过使用 updategram 中提供的值修改列或忽略该值,在这种情况下,SQL Server 生成的值用于此列)。

可以为 sql:identity 批注分配两个值:

ignore
指示 updategram 忽略该列的 updategram 中提供的任何值,并依赖 SQL Server 生成标识值。

useValue
指示 updategram 使用在其中提供的值来更新 IDENTITY 类型的列。 updategram 不会检查列是否为标识值。

如果 updategram 指定 IDENTITY 类型列的值,则必须在架构中指定 sql:identity=“useValue”。

sql:guid 批注

updategram 可以让 SQL Server 生成 GUID 值,然后在 updategram 中使用此值。 在 DiffGrams 的上下文中,可以使用 sql:guid 注释来指定是使用由 SQL Server 生成的 GUID 值还是使用该列的 updategram 中提供的值。

可以为 sql:guid 批注分配两个值:

generate
指定 SQL Server 生成的 GUID 用于更新操作中的该列。

useValue
指定在 updategram 中指定的值可以用于该列。 这是默认值。