【问题标题】:How to delete data in all tables from a database except except few tables如何从数据库中删除除少数表之外的所有表中的数据
【发布时间】:2017-10-25 14:59:29
【问题描述】:

我的数据库中有 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。

【问题讨论】:

标签: sql-server sql-server-2008-r2 sp-msforeachtable


【解决方案1】:

DELETE FROM [?] 之前使用 IF ''?'' NOT IN (''TABLE1'',''TABLE2'')
顺便说一句,我建议使用TRUNCATE TABLE [?] 而不是DELETE FROM [?]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-24
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    • 2018-01-15
    • 2011-06-06
    • 2019-02-24
    • 2011-03-20
    相关资源
    最近更新 更多