Asp.net 删除数据库中的所有内容并从头开始重建的最快方法?

Asp.net 删除数据库中的所有内容并从头开始重建的最快方法?,asp.net,sql,sql-server,shortcut,Asp.net,Sql,Sql Server,Shortcut,我正在设计一个带有SQL数据库的标准ASP.Net网站。我有一个数据库模式,在测试期间,我在其他任务中更改数据类型,其中包含的数据实际上并不那么重要 由于旧数据与新规则不匹配,我不断收到错误。这并不重要,我很乐意清除所有内容,但目前,我必须将数据库导出/发布到一个.sql文件,然后从头开始导入-这很耗时 是否有一个我错过的快速按钮/功能,允许您将自动编号/ID重置为1并删除所有内容,或者只是加快我当前的操作速度?以下是一个删除表中所有数据的快速方法: TRUNCATE TABLE YourTab

我正在设计一个带有SQL数据库的标准ASP.Net网站。我有一个数据库模式,在测试期间,我在其他任务中更改数据类型,其中包含的数据实际上并不那么重要

由于旧数据与新规则不匹配,我不断收到错误。这并不重要,我很乐意清除所有内容,但目前,我必须将数据库导出/发布到一个.sql文件,然后从头开始导入-这很耗时


是否有一个我错过的快速按钮/功能,允许您将自动编号/ID重置为1并删除所有内容,或者只是加快我当前的操作速度?

以下是一个删除表中所有数据的快速方法:

TRUNCATE TABLE YourTableName
您可以编写一个脚本来截断所有表

另一种方法是删除表并重新创建它


如果您真的想删除所有数据,那么您可以分离数据库并创建一个全新的数据库;这有点极端,但可能比先删除所有数据要快。

这里有一个删除表中所有数据的快速方法:

TRUNCATE TABLE YourTableName
您可以编写一个脚本来截断所有表

另一种方法是删除表并重新创建它


如果您真的想删除所有数据,那么您可以分离数据库并创建一个全新的数据库;这有点极端,但可能比先删除所有内容要快。

您可以选择一些选项,“最快”取决于您的数据库

首先回答有关种子设定等的问题-TRUNCATE TABLE将删除表中的所有信息(非常快,因为它没有记录),并将重置您的标识列

例如:

这里的重要限制是,您不能在被另一个表引用的表上使用它。在这种情况下,可以使用标准的delete,然后使用DBCC CHECKIDENT

例如:

请记住使用delete以确保按正确顺序删除信息(即考虑外键)

我经常使用的另一种方法是,当我想重置数据库时,只需编写一个完整的拆卸/重建脚本。基本前提是在脚本开始时删除或删除所有数据库对象,然后重新创建它们。这不一定是所有场景的解决方案,但基本任务对我来说效果很好。为了避免错误,我通常会在IF语句中添加drop语句,例如:

IF EXISTS 
(
     SELECT * 
     FROM information_schema.tables 
     WHERE table_name = 'table' AND table_schema = 'dbo'
)
BEGIN
    DROP TABLE dbo.table
END

您可以选择几个选项,“最快的”取决于您的数据库

首先回答有关种子设定等的问题-TRUNCATE TABLE将删除表中的所有信息(非常快,因为它没有记录),并将重置您的标识列

例如:

这里的重要限制是,您不能在被另一个表引用的表上使用它。在这种情况下,可以使用标准的delete,然后使用DBCC CHECKIDENT

例如:

请记住使用delete以确保按正确顺序删除信息(即考虑外键)

我经常使用的另一种方法是,当我想重置数据库时,只需编写一个完整的拆卸/重建脚本。基本前提是在脚本开始时删除或删除所有数据库对象,然后重新创建它们。这不一定是所有场景的解决方案,但基本任务对我来说效果很好。为了避免错误,我通常会在IF语句中添加drop语句,例如:

IF EXISTS 
(
     SELECT * 
     FROM information_schema.tables 
     WHERE table_name = 'table' AND table_schema = 'dbo'
)
BEGIN
    DROP TABLE dbo.table
END

为什么不编写一些t-SQL代码来删除(或截短,甚至更快)所有表?清除表时要注意考虑完整性规则:在清除包含主键的表之前,请始终清除包含外键的表。

为什么不编写一些t-SQL代码来删除(或截断,甚至更快)所有表?清除表时要注意考虑完整性规则:在清除包含主键的表之前,请始终清除包含外键的表。

如果只需要清除数据,则只需编写脚本截断每个表中的所有数据。truncate命令还重置任何标识字段

TRUNCATE TABLE myTable

对于你的每一张桌子。然后每次只运行该脚本。

如果只需要清除数据,则只需编写一个脚本来截断每个表中的所有数据。truncate命令还重置任何标识字段

TRUNCATE TABLE myTable

对于你的每一张桌子。然后每次只运行该脚本。

正如其他人所建议的那样,我发现最好维护一个脚本,该脚本从头开始构建数据库,并可以在重建数据库之前将其拆下。像开发应用程序的其余部分一样开发此脚本。我发现通过脚本比通过GUI构建数据库更容易理解数据库,特别是在存在复杂关系、触发器等的情况下

如果您有其他开发人员,它也很有用,而且可能比复制您的工作数据库并将其交给其他开发人员更快、更不容易出错


在发布时,您可以冻结该脚本,然后为下一个版本创建增量脚本,该版本只包含从初始模式到新模式的更改。这还可以在重新创建之前删除在增量中创建的新对象,这样它就可以轻松地重新运行,而不必擦除整个数据库。

正如其他人所建议的,我发现最好维护一个脚本,从头开始构建数据库,并可以在重建数据库之前删除数据库。像开发应用程序的其余部分一样开发此脚本。我发现通过脚本比通过GUI构建数据库更容易理解数据库,特别是在存在复杂关系、触发器等的情况下

如果您有其他开发人员,它也很有用,而且