我必须从 MDF 文件中清除架构和数据的选项是什么?删除所有数据的选项有哪些?
要重置数据库模式,我似乎需要在数据库备份为空时复制文件。我想知道是否有更简单或更有效的方法。
要清除所有数据,我似乎需要编写一个脚本。该脚本将禁用约束,然后在重新启用约束之前从每个表中删除所有行。这很简单,但确实需要我发现/跟踪数据库中存在哪些表。也许它还不够,或者有更简单的方法?
我必须从 MDF 文件中清除架构和数据的选项是什么?删除所有数据的选项有哪些?
要重置数据库模式,我似乎需要在数据库备份为空时复制文件。我想知道是否有更简单或更有效的方法。
要清除所有数据,我似乎需要编写一个脚本。该脚本将禁用约束,然后在重新启用约束之前从每个表中删除所有行。这很简单,但确实需要我发现/跟踪数据库中存在哪些表。也许它还不够,或者有更简单的方法?
我不确定“清除架构”的意义何在——当然,一个新数据库已经有了一个“清除”架构。但是,您可以通过以下 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 ?'