Skip to content

Eliminar todas las claves foráneas (foreing keys) de una base de datos en SQL Server

04/08/2014
SQLServerLogo

El siguiente script realiza la eliminación de todas las claves foráneas (FK) de una base de datos de SQL Server (todas las versiones desde SQL Server 2000):

DECLARE @SQL as varchar(2000)
DECLARE @Schema as varchar(200)
DECLARE @Table as varchar(200)
DECLARE @Constraint as varchar(200)

DECLARE FKCursor CURSOR READ_ONLY FOR
SELECT Table_Schema,Table_Name, Constraint_Name
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE CONSTRAINT_TYPE = ‘FOREIGN KEY’

OPEN FKCursor
FETCH NEXT FROM FKCursor INTO @Schema,@Table,@Constraint
WHILE (@@fetch_status <> -1)
BEGIN
 IF (@@fetch_status <> -2)
 BEGIN
  EXEC (‘ALTER TABLE ‘ + @Schema + ‘.[‘ + @Table+ ‘] DROP CONSTRAINT [‘ + @Constraint + ‘]’)
 END
 FETCH NEXT FROM FKCursor INTO @Schema,@Table,@Constraint
END

CLOSE FKCursor
DEALLOCATE FKCursor

Con modificaciones simples, se puede utilizar para eliminar otros tipos de constraints. Les advierto que se debe usar con cuidado porque el resultado de la ejecución no es reversible.

Dejar un comentario

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: