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