批量删除MSSQLServer的外键约束

批量删除MSSQLServer的外键约束

SQLServer2005/2008 测试通过.


--创建临时表
create table #t (keyId int identity,name varchar(200),tbname varchar(200))

--将所有的外键插入临时表中
insert into #t (name,tbName) 
select a.name,b.name from sys.foreign_keys a left join sysobjects b on a.parent_object_id = b.id 

declare @i int,@imax int,@name varchar(200) ,@tbName varchar(200)

select @i=MIN(keyId) from #t 
select @imax=MAX(keyid) from #t

while @i<=@imax
begin
	set @name='' 
	set @tbName =''
	select @name =name,@tbName=tbname from #t where keyId=@i

	--打印删除外键的语句,并执行
	print(' ALTER TABLE ['+@tbname +'] DROP CONSTRAINT ['+@name+']')
	exec(' ALTER TABLE ['+@tbname +'] DROP CONSTRAINT ['+@name+']')

	set @i=@i+1
end


truncate table #t 
drop table #t


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值