2012-09-02 136 views

回答

0

可以使用系統表,您的目的:

  1. sys.foreign_keys
  2. sys.key_constraints
  3. sys.check_constraints
  4. sys.default_constraints

系統表上面有所有的外鍵,約束和默認列你的數據庫上的表。

你可以寫光標來刪除數據庫上面的所有對象。您的光標必須如下查詢:

DECLARE @Name NVARCHAR(250), 
     @Command NVARCHAR(1000) 

DECLARE cCons CURSOR for 
SELECT name 
FROM sys.check_constraints 

OPEN cCons 
FETCH NEXT FROM cCons INTO @Name 
WHILE @@Fetch_Status=0 BEGIN 
    SET @Command = 'DROP CONTRACT '+ @Name 
    EXEC(@Command) 
    FETCH NEXT FROM cCons INTO @Name 
End 
CLOSE cCons 
DEALLOCATE cCons 
0

使用以下命令生成腳本。將生成的腳本複製並粘貼到新的查詢窗口以刪除所有Fk和唯一約束。

選擇 'ALTER TABLE' +表名+ 'DROP約束' + CONSTRAINT_NAME從INFORMATION_SCHEMA.TABLE_CONSTRAINTS 其中CONSTRAINT_TYPE在( '獨特', '的外鍵')