我有一个SQL(Microsoft SQL 2008)表,其中一列包含XML数据。每个XML根节点都有一个GUID属性。
例如:
<!--Row 1-->
<example:root id="E0B1BCEA-C0E2-4d7c-BF67-FA9A7C3FBA73">
[...]
</example:root>
<!--Row 2-->
<example:root id="13BB87F4-32A5-4de7-8CE9-E62AF002B958">
[...]
</example:root>
如何创建一个约束来确保此GUID是唯一的,即没有两行共享相同的root / @id值?
注意:我不能在应用程序级别执行此操作,也不能为插入创建存储过程(因为它需要更改现有应用程序)。
答案 0 :(得分:2)
是的,你可以
这肯定会奏效。
答案 1 :(得分:1)
如果它不是一个单独的领域,那么我认为你不能。
但是,您可以在insert上添加一个触发器,它将从XML数据中提取GUID并将其放在单独的字段中。然后你可以对该字段有一个独特的约束。
另一种方法是创建一个夜间作业,该作业将扫描数据库以搜索重复项。