如何从 SQL 数据库中删除数据并保持参照完整性+约束?
How does one delete data from an SQL Database and Maintaining Referential Integrity+constraints?
我有一个 40GB 的大数据 SQL 数据库,我想从所有表中删除所有数据,因此我的问题是:如何从 SQL 数据库中删除数据并维护引用完整性+约束?
视情况而定。
如果要从所有表中删除所有数据,最好禁用约束、截断表,然后重新启用约束。
如果您只是删除一些记录,您需要先删除子记录,然后再删除父记录,如@dan-bracuk 所说。或者,如果您设置了级联删除,则可以从父级开始。
如果您要删除很多很多记录,如果您可以在持续时间内限制表上的其他 activity,那么禁用约束可能会更好。
如果您要复制表,那么您可能还有其他一些注意事项。
我有一个 40GB 的大数据 SQL 数据库,我想从所有表中删除所有数据,因此我的问题是:如何从 SQL 数据库中删除数据并维护引用完整性+约束?
视情况而定。
如果要从所有表中删除所有数据,最好禁用约束、截断表,然后重新启用约束。
如果您只是删除一些记录,您需要先删除子记录,然后再删除父记录,如@dan-bracuk 所说。或者,如果您设置了级联删除,则可以从父级开始。
如果您要删除很多很多记录,如果您可以在持续时间内限制表上的其他 activity,那么禁用约束可能会更好。
如果您要复制表,那么您可能还有其他一些注意事项。