在identity_insert开/关后进行SQL Server完整性检查

时间:2011-10-24 14:27:17

标签: sql-server-2008 integrity identity-insert

我将遗留应用程序(php + mysql)中的数据导入重写版本(sql server 2008和mvc3)。我目前正在编写db同步/转换包。

mysql数据有主键,但由于某种原因没有外键,因为数据仍然是关系型的(尽管缺少外键)我的转换包使用IDENTITY_INSERT ON / OFF。由于源数据无法强制执行数据完整性,因此我希望在执行插入并将IDENTITY_INSERT设置为OFF后执行完整性检查。

是否有一种编写该操作的好方法?最好是在表级而不是整个db?

感谢。

1 个答案:

答案 0 :(得分:1)

我个人会在导入新架构之前确定哪些数据没有完整性。一个简单的WHERE NOT存在于每个子表上的查询(或者已被设计为子表的内容)将会这样做。我不会导入无法绑定到父记录的数据。但是,我会创建一个异常表并将这些记录移入其中,并让一些用户看看他们是否可以弄清楚父数据应该是什么。