【问题标题】:sql server: delete all the rows of all the tablessql server:删除所有表的所有行
【发布时间】:2010-11-07 00:13:57
【问题描述】:

我想彻底清除数据库并重置数据。最快的方法是什么?或者,删除表中所有行的命令是什么(我将对所有表重复该过程)?

谢谢

【问题讨论】:

    标签: sql sql-server


    【解决方案1】:

    这种方法可以让您从所有表中删除内容,即使是那些被外键约束引用的表。您可以对其进行增强,使其检查是否存在外键约束,并在这些情况下执行TRUNCATE TABLE

    EXEC sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
    EXEC sp_msforeachtable 'DELETE FROM ?'
    EXEC sp_msforeachtable 'ALTER TABLE ? WITH CHECK CHECK CONSTRAINT ALL'
    

    【讨论】:

    • 选择db怎么样?就说use X?
    【解决方案2】:

    如果您不想编写脚本并删除表格,有多种方法可以通过循环来执行此操作。这可能是最简单的:

    sp_MsForEachTable '截断表?'

    【讨论】:

    • 我只是想提一下,对于由外键引用的表来说,截断是不可能的。所以这可能不适用于所有表。抱歉,刚刚看到 Phil Hunt 已经正确回答了。
    【解决方案3】:

    删除数据库并重新创建它。

    【讨论】:

      【解决方案4】:

      使用 SQL Server Management Studio 为表编写 DROP 和 CREATE 语句的脚本,然后运行该脚本。右键单击数据库并选择任务 --> 生成脚本。运行向导(确保选中“Choose Script Options”步骤中的 Script Drop 选项)并选择所有表。生成的脚本应该删除所有表,然后重新创建它们。

      【讨论】:

        猜你喜欢
        • 2020-04-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-03
        • 2011-07-09
        • 1970-01-01
        相关资源
        最近更新 更多