2012-09-02 42 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在( '独特', '的外键')