尝试使用FK动态TRUNCATE并重新加载SQL表

时间:2012-04-05 20:25:41

标签: sql sql-server-2000

杀手信息:SQL Server 2000.如此有限! :(

我正在编写一套非常详细的存储过程,用于在我们访问开发数据库之前清理我们的生产数据,以安抚一个没有根据的安全问题(但这既不存在也不存在)。

我需要一个存储过程,它会根据业务规则“洗牌”特定列中的数据,我希望能够通过更改一些参数来对多个表运行这个存储过程。

由于shuffle,我获取所有数据,将其放入临时表中同时进行混洗,然后我截断原始表并重新加载所有数据。同样重要的是,PK永远不会改组,因此它们都完好无损且相同。

一切都很好,除非表有外键约束 - 然后我得到典型的

  

无法截断表'STUFF',因为它被a引用   FOREIGN KEY约束。

所以我有两个问题:

  1. 是否可以动态删除,然后添加外键 - 或者将它们“移出”数据库(到临时表)然后再返回?

  2. 或者,除了使用性能极高的DELETE(数百万行不那么有趣)之外,还有什么方法可以解决这个问题吗?

0 个答案:

没有答案