给定 SQL Express 数据库基本文件 (.MDF),如何擦除/清除/重置架构和/或数据?
我必须使用哪些选项来清除 MDF 文件中的架构和数据?什么选项可以删除所有数据?
要重置数据库架构,似乎我需要在数据库备份为空时复制文件。我想知道是否有更简单或更有效的方法。
要清除所有数据,看来我需要编写一个脚本。该脚本将禁用约束,然后在重新启用约束之前删除每个表中的所有行。这很简单,但确实需要我发现/跟踪数据库中存在哪些表。也许它还不够或者有更简单的方法?
Whats options do I have to clear the schema and data from a MDF file? What options to delete all the data?
To reset a databases schema, it seems I need to copy a file from a backup of the database when it was empty. I was wondering if there was a simpler or more efficient way.
To clear all data, it seems I'd need to write a script. The script would disable constraints, then drop all rows from each table before turning back on constraints. This is straightforward but does require I discover/track what tables exist in the database. Maybe its not sufficient or there is an easier approach?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我不确定“清除架构”的意义是什么 - 当然一个新数据库已经有一个“清除”架构。但是,您可以通过以下 T-SQL 在代码中创建一个新数据库:
如果您需要一个文件(MDF),然后您也可以使用 sp_detach_db 分离数据库然后,您可以根据需要从上面指定的位置移动它:
要清除数据,您可以使用带有截断命令的 sp_msforeachtable - 这是一个非日志操作,并且不检查约束,也不检查外键 - 但是,它 无法回滚!
I'm not sure what the point is of 'clearing the schema' - surely a new database already has a 'clear' schema.. BUT, you can create a new database in code via the following T-SQL:
If you need a file (an MDF) you can then detach the database too with sp_detach_db and you can then move it as required from the location specified above:
To clear the data you can use sp_msforeachtable with a truncation command - it is a non-logged operation, and does not check constraints, nor foreign keys - however, it cannot be rolled back!