SQL Server删除表的外键约束


  本文标签:SQL Server删除表

  如何才能在SQL Server删除表之前将外键约束删除呢?这是大家经常问到的问题,下面就为您介绍SQL Server删除表的外键约束的方法,供您参考  。

  删除表的外键约束用到的存储过程:

  1. CREATE PROCEDURE sp_drop_all_fk      
  2. as   
  3. declare @sql varchar(255)     
  4. declare dropsql_cursor cursor for      
  5. select alter table +object_name(fkeyid)+ drop constraint +object_name(constid)+char(10) from sysreferences     
  6.  
  7. open dropsql_cursor     
  8.  
  9. fetch dropsql_cursor into @sql     
  10.  
  11. begin tran     
  12.  
  13. while @@fetch_status=0     
  14. begin   
  15.          
  16.     execute(@sql)     
  17.          
  18.     if @@error <> 0     
  19.     begin   
  20.         rollback   
  21.         return   
  22.     end   
  23.  
  24.     fetch dropsql_cursor into @sql     
  25.  
  26. end   
  27. deallocate dropsql_cursor     
  28.  
  29. commit   
  30. GO   
  31.  
  32. exec sp_drop_all_fk   -- 执行存储过程