我目前正在对已经发生的一些(显著)数据损坏的项目。 具体数据库使用的GUID作为最表的主键,但是它不强制执行这些表之间的数据完整性(由于啰嗦“这是从另一家公司收购,并与我们的东西结合”的讨论)。 有一个正在努力引进引用完整性,但是数据必须被清理之前,这是可能的。
此数据损坏的部分原因是不同的实体按键已切换或插入不正确的列。 例如,一个有效的“产品编号”值在“客户ID”字段存在由于软件中插入错误的列错键。 这是在数据库中发生的几个月前终于被抓住了问题(数据汇总工作期间),现在的清理工作是相当大的。
如果在数据库中找到一个GUID的办法是什么我不知道是。 相反,如果我有一个GUID,我认为是一些表的主键,有没有要求任何唯一标识符键列称为比赛的T-SQL的方式?
我知道GUID我不是一个客户编号,但它可能是从其他表中的另一主密钥ID。 到现在为止,球队一直在寻找其他表手动流氓GUID的比赛,看看他们是否能找出关键的“类型”。 他们甚至已经走尽可能地与很多创建脚本“SELECT * FROM [表],其中[TABLEID] = @rogueGUID”,搜索已知的实体表的匹配语句。 然而,这种方法不是很有效。
我在找这个剧本不仅为这个项目也是因为我觉得:“这个GUID作为主键值在该数据库中的任何地方存在吗?” 查询的类型将是一个开发工具箱中一个非常有用的资产。 任何帮助表示赞赏。