我如何忽略错误当删除记录(How Do I Ignore Errors When Deleting

2019-10-17 19:37发布

我在测试大量的架构更改升级我们的分贝有包装的产品,我们有最新的版本上运行的过程。

在这一点上,我不感兴趣,包含在数据库中的数据,仅模式(即表,视图,约束,钥匙,存储过程等)。

我的测试需要运行脚本,解决错误,一个重新运行的脚本。 如果我要重新运行脚本,我需要首先恢复DB拿回来到已知状态。 恢复db是非常耗时的,因为它有大量的数据。 我想“减肥”数据库,并删除尽可能多的数据成为可能。 这样,这将是更快地恢复数据库,并重新运行我的脚本

当我试图从众多的表删除记录(“从桌面删除名称”)我碰上约束错误,命令停止。

有没有一种办法,让命令继续,实际上,在那里有没有约束的问题表中删除所有记录? 换句话说,我想该命令忽略错误,并继续删除所有记录就可以了。

任何建议将不胜感激。

Answer 1:

上述拜伦使得一个好点; 您可以禁用外键或检查与ALTER TABLE命令的限制:

ALTER TABLE TableName NOCHECK CONSTRAINT ALL

然后做你的工作,并在完成时,

ALTER TABLE TableName CHECK CONSTRAINT ALL

重新启用限制。 要小心,虽然:如果你离开你的数据在违反限制不一致的状态,一旦你重新启用它们,将来的更新失败的可能原因,约束错误。

资料来源:
http://weblogs.sqlteam.com/joew/archive/2008/10/01/60719.aspx

http://technet.microsoft.com/en-us/library/ms190273.aspx



文章来源: How Do I Ignore Errors When Deleting Records