删除SQL Server中所有数据的方法
那怎样才能删除全部数据呢? 逐个表删必须遇到外键约束一和触发器等各种麻烦。显然,可以在删除表前,解除外键约束和触发器。且看下面sql语句。
[sql]
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'
sp_MSForEachTable 是微软
系统数据库未曾公开的一个存储过程,另有一个为sp_MSforeachdb。
上面的第一,二条语句分别用来解除约束和禁用触发器,第三条为删除所有数据表中的数据,第四,五条则是恢复约束和触发器。 www.2cto.com
把以上语句写成系统存储过程。
USE MASTER
CREATE PROCEDURE sp_DeleteAllData
AS
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'
GO
作者 zzuqqiu