在数据库中留下约束错误的危险是什么?

时间:2013-01-06 23:42:49

标签: sql sql-server-2008 constraints

我必须从具有许多FK约束的表中删除几千条记录。 我停止了对所有表的约束强制执行并删除了记录加上固定的一些 DBCC检查向我展示了明显的约束,然后我启用了约束。 在那之后,DBCC检查仍然显示一些错误,但此时我没有时间 搜索原因。我的问题就像在标题中可能是愚蠢的,但如果我将数据库暂时搁置约束错误会发生什么?使用此数据库的应用程序会受到影响吗? 我可以解除限制吗? (我使用的是SQL Server 2008) 感谢

1 个答案:

答案 0 :(得分:3)

您将拥有缺乏完整性的数据(包含一些无效信息)。这不会使数据库崩溃或产生错误,但应用程序将如何对此做出反应完全取决于应用程序。您可能会看到一些错误页面,甚至更糟糕的是,无效数据将传播以产生更多无效数据或操作(之后可能更难以追踪和修复)。

这些约束的关键是使数据库验证(或拒绝)数据,以便应用程序可以依赖于数据中未出现的某些无效模式。许多应用程序都是为了不使用这些保证并自己处理数据完整性而构建的,但是如果你的应用程序确实依赖于它们,然后你将它们从它下面拉出来,那听起来有点危险。