堆码狂人 发表于 2011-02-09 17:01

去除外键的存储过程

create proce prdropforeignkeys
@chvreferencedtable varchar(30)
as
declare @chvtablewithforeignkey varchar(30),
            @chvforeignkey varchar(30),
            @chvsql varchar(255)
declare cufks cursor for
selecttb.name,fk.name from
((sysobject tb inner join sysreferences r on tb.id=r.fkeyid)
inner join sysobjects fk on r.constid=fk.id)
inner join sysobjects refd on refd_tb.id=r.rkeyid)
where refd_tb.name=@chvreferencedtable
open cufks
fetch next from cufks into @chvtablewithforeignkey,@chvforeignkey

while (@@fetch_status<>-1)
begin
select @chvsql='alter table'+@chvtablewithforeignkey+
    'drop constraint '+@chvforeignkey
exec(@chvsql)
fetch next from cufks into @chvtablewithforeignkey,@chvforeignkey
end
deallocate cufks
页: [1]
查看完整版本: 去除外键的存储过程