问题背景:某个系统从总服务器Oracle下载数据存入SQL Server,系统采用ADO.NET访问Oracle。原以为总服务器上的数据都是正确的,结果出现了“脏数据”,系统报外键异常。
问题描述:数据下载完后,需要存入三个表,其中第三个表引用了前两个表的ID作为外键。现在有一条数据无法插入第三个表,报出外键引用异常。现在需要找出这条脏数据,请问如何解决?
(小公司的大项目,请各位路过给出些建议!)
我醉了,这么多条脏数据,隐藏在十三万条数据中。妈的!这个周末得加班了!!!
try catch一下, 记录走到哪一条报错不就行了? 这是最简单的做法
这个答案我记得在《SQL Server 从入门到精通》书里面是有的,可能你研究的项目太大了,一下忘了简单的方法了。
两个表A, B
Select A.ID from A
left outer join B on A.ID=B.ID
where B.ID is null
这样出来的就是脏数据。