2013-03-08 69 views
1

我正在测试大量模式更改以升级我们的数据库以使用最新版本的打包产品运行。如何在删除记录时忽略错误

在这一点上,我不关心数据库中包含的数据,只有架构(即表,视图,约束,键,存储过程等)。

我的测试需要运行脚本,解决错误,重新运行脚本。如果我想重新运行脚本,我需要先恢复数据库以使其恢复到已知状态。由于数据量很大,因此恢复数据库非常耗时。我想“瘦”分贝,尽可能多地删除数据。这样将恢复数据库和重新运行我的脚本将更快

当我尝试从许多表中删除记录(“删除表名”)我遇到约束错误,命令停止。

有没有办法允许命令继续,实际上,删除表中没有约束问题的所有记录?换句话说,我希望命令忽略错误并继续删除所有可能的记录。

任何建议将不胜感激。

+0

多少桌,你呢?您可以在删除时关闭约束条件吗? – Byron 2013-03-08 21:11:48

回答

0

拜伦上面说得很好;你可以禁止外键或使用ALTER TABLE命令CHECK约束:

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

相关问题