martes, 14 de octubre de 2014

Borrar Llaves Foraneas

declare @nam_sch varchar(20) = 'db_hd'; 
select @sch = SCHEMA_ID from sys.schemas  where name = @nam_sch;
--
-- Borrado de todas las Foreign Key 
--
declare @fk_name_fk sysname,
  @fk_schema sysname,
  @fk_name_tbl sysname,
  @cmd nvarchar(1024);
declare cur_fkeys cursor for
select 
 a.name as name_fk,
 SCHEMA_NAME(a.schema_id) as name_sch,
 b.name as name_tbl
from sys.foreign_keys a
 left outer join sys.tables b on b.object_id = a.parent_object_id
where a.schema_id = @sch; 
open cur_fkeys;
fetch next from cur_fkeys
into @fk_name_fk,@fk_schema,@fk_name_tbl
while @@FETCH_STATUS = 0
begin
 set @cmd = 'ALTER TABLE ' + @fk_schema + '.' + @fk_name_tbl + ' DROP CONSTRAINT ' + @fk_name_fk;
 execute(@cmd);
 fetch next from cur_fkeys
 into @fk_name_fk,@fk_schema,@fk_name_tbl
end
close cur_fkeys;
deallocate cur_fkeys;

No hay comentarios.:

Publicar un comentario