【问题标题】:Truncate all relational tables in SQL Server截断 SQL Server 中的所有关系表
【发布时间】:2016-08-21 06:18:25
【问题描述】:

我的服务器中有一个关系数据库,用于开发系统。现在我想让它生效并截断表中的所有数据。我已经从表中手动删除了数据,之后我运行了 truncate 命令,但它显示了这个错误:

无法截断表“dbo.Building”,因为它被 FOREIGN KEY 约束引用。

有没有什么方法可以使用单个命令清空我的数据库?我搜索了谷歌,他们都被告知要使用 truncate 命令。但我不能将它用于所有表,因为发生了错误。

我想在所有表中输入 ID 为 1 的数据。

请给我一个从我的数据库中截断所有数据的指南。

【问题讨论】:

    标签: sql-server relational-database foreign-key-relationship truncate


    【解决方案1】:

    现在我想让它生效并截断表格中的所有数据

    您完全错误地处理了这个问题。即使你成功了,你也会部署一个无法升级的系统。随着您继续开发,您将修改开发数据库,​​然后当您必须部署应用程序的下一个版本时,您会意识到您需要修改生产数据库保留其所有数据。

    立即停止部署并返回绘图板设计适当的部署策略。 I recommend migrations。另一种选择是使用差异工具。

    截断表与您实际尝试实现的目标完全无关。

    【讨论】:

      【解决方案2】:

      我可以考虑两个选项..

      1. 你需要drop (not just disable ) all foreign keys,然后最后运行truncate用任何方法删除所有表数据..最后重新创建所有外键

      2. 您还可以仅编写 DDL 脚本并使用该脚本部署数据库,而不是向部署团队提供数据库..

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-09
        • 2011-08-27
        • 1970-01-01
        • 2015-09-19
        • 1970-01-01
        相关资源
        最近更新 更多