【MS】使用SQL完成整库的数据表的外键删除或禁用

DECLARE @SQL VARCHAR ( MAX ),
@tab_name VARCHAR ( 128 ),
@fk_name VARCHAR ( 128 );

DECLARE c CURSOR FOR
SELECT  OBJECT_NAME( parent_object_id ), name FROM sys.objects WHERE type = 'F';
  
OPEN c;

FETCH NEXT FROM c INTO @tab_name, @fk_name;
  
WHILE @@FETCH_STATUS = 0
BEGIN
      
SET @SQL = '';
-- 删除表约束    
SET @SQL = 'alter table [' + @tab_name + '] drop constraint ' + @fk_name;
-- 禁用表约束
--set @sql='alter table ['+@tab_name+'] nocheck constraint all;';
PRINT @SQL;
EXEC(@SQL);
FETCH NEXT FROM c INTO @tab_name, @fk_name;
    
END
  
CLOSE c
DEALLOCATE c
posted @ 2025-02-28 17:37  一块白板  阅读(1)  评论(0编辑  收藏  举报