我的数据库中有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。
这可能会帮助你http://stackoverflow.com/questions/7852979/how-to-exclude-tables-from -sp-msforeachtable – TriV
它工作。谢谢! – Maltesh