有时候我们想清空SQL Server中所有表的数据,但是由于有外键约束和触发器,有时候清表语句无法执行,下面的语句可以关掉和开启一个数据库中的所有外键约束和触发器,以便执行清表语句:
USE ClothesShop EXECUTE sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL' EXECUTE sp_MSForEachTable 'ALTER TABLE ? DISABLE TRIGGER ALL' EXECUTE sp_MSForEachTable 'DELETE FROM ?' EXECUTE sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL' EXECUTE sp_MSForEachTable 'ALTER TABLE ? ENABLE TRIGGER ALL' EXECUTE sp_MSFOREACHTABLE 'SELECT * FROM ?'
关于SQL Server的系统存储过程sp_Msforeachtable,可以查看这篇文章:
sp_Msforeachtable与sp_Msforeachdb详解
标签:EXECUTE,sp,MSForEachTable,外键,空语句,SQL,TABLE,ALTER From: https://www.cnblogs.com/OpenCoder/p/18187081