2009-07-07 111 views

回答

1

对理查德的代码编译:

SELECT 
'ALTER TABLE ' + object_name(parent_obj) + ' DROP CONSTRAINT ' + object_name(id),* FROM sysobjects WHERE xtype IN ('F', 'PK') 

您可以运行在QA输出&看你的数据库用户流失,因为它变成你的表成堆

0

您可以从dbo.sysobjects表中选择xtype in ('F', 'PK')的行,并为每一行生成相应的alter table语句。不过,我首先会问,你为什么要这样做?制约因素有很多不同的原因是非常重要的。

+0

我想删除所有的contstraints和所有新创建的约束 当我将删除pk然后它会给我错误,删除第一个fk,这是主要问题 – KuldipMCA 2009-07-07 07:27:30

+0

如何删除所有的FK然后重新创建它们? – 2009-07-07 07:32:07

0

您可以在sysobjects表中列出的限制:

SELECT * FROM sysobjects WHERE xtype IN ('F', 'PK') 

使用游标来遍历的相关记录,建立一个字符串的SQL语句,将删除每个约束和EXEC()语句。