2009-07-07 148 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()語句。