1

我必须从 MDF 文件中清除架构和数据的选项是什么?删除所有数据的选项有哪些?

要重置数据库模式,我似乎需要在数据库备份为空时复制文件。我想知道是否有更简单或更有效的方法。

要清除所有数据,我似乎需要编写一个脚本。该脚本将禁用约束,然后在重新启用约束之前从每个表中删除所有行。这很简单,但确实需要我发现/跟踪数据库中存在哪些表。也许它还不够,或者有更简单的方法?

4

1 回答 1

2

我不确定“清除架构”的意义何在——当然,一个新数据库已经有了一个“清除”架构。但是,您可以通过以下 T-SQL 在代码中创建一个新数据库:

USE Master
CREATE DATABASE NewDb (NAME=NewDbFile, FILENAME= '<filepath>')

如果您需要一个文件(MDF),您也可以使用sp_detach_db分离数据库,然后您可以根据需要从上面指定的位置移动它:

EXEC sp_detach_db NewDb

要清除数据,您可以使用带有 truncation 命令的 sp_msforeachtable - 这是一个不记录的操作,不检查约束,也不检查外键 - 但是,它不能回滚!

EXEC sp_msforeachtable 'TRUNCATE TABLE ?'
于 2011-02-04T02:17:35.870 回答