如何从数据库中删除除少数表之外的所有表中的数据
How to delete data in all tables from a database except except few tables
我的数据库中有 50 多个表,我想删除 48 个表中的所有数据。
我尝试使用
EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
EXEC sp_MSForEachTable 'ALTER TABLE ? DISABLE TRIGGER ALL'
EXEC sp_MSForEachTable 'DELETE FROM ? '
EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'
EXEC sp_MSForEachTable 'ALTER TABLE ? ENABLE TRIGGER ALL'
EXEC sp_MSFOREACHTABLE 'SELECT * FROM ?'
GO
但是它删除了所有表中的所有数据。
有人可以建议我需要进行哪些更改才能从查询中除 TABLE1、TABLE2 等之外的所有表中删除数据:
EXEC sp_MSForEachTable 'DELETE FROM ? '
我正在使用 SQL Server 2008R2。
在 DELETE FROM [?]
之前使用 IF ''?'' NOT IN (''TABLE1'',''TABLE2'')
顺便说一句,我建议使用 TRUNCATE TABLE [?]
而不是 DELETE FROM [?]
我的数据库中有 50 多个表,我想删除 48 个表中的所有数据。
我尝试使用
EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
EXEC sp_MSForEachTable 'ALTER TABLE ? DISABLE TRIGGER ALL'
EXEC sp_MSForEachTable 'DELETE FROM ? '
EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'
EXEC sp_MSForEachTable 'ALTER TABLE ? ENABLE TRIGGER ALL'
EXEC sp_MSFOREACHTABLE 'SELECT * FROM ?'
GO
但是它删除了所有表中的所有数据。
有人可以建议我需要进行哪些更改才能从查询中除 TABLE1、TABLE2 等之外的所有表中删除数据:
EXEC sp_MSForEachTable 'DELETE FROM ? '
我正在使用 SQL Server 2008R2。
在 DELETE FROM [?]
之前使用 IF ''?'' NOT IN (''TABLE1'',''TABLE2'')
顺便说一句,我建议使用 TRUNCATE TABLE [?]
而不是 DELETE FROM [?]