Foreign Key Constraints löschen

By Frank Kalis

Posted on Nov 26, 2004 von in SQL Server

Das nachfolgende Skript löscht alle existierenden Einschränkungen für die angegebene Tabelle. Will man alle Einschränkungen der aktuellen Datenbank löschen, muss man einfach nur die WHERE Zeile auskommentieren oder entfernen.

CREATE TABLE dropping_constraints
(
 cmd VARCHAR(8000)
)

INSERT INTO dropping_constraints
SELECT 
 'ALTER TABLE [' +
 t2.Table_Name +
 '] DROP CONSTRAINT ' + 
 t1.Constraint_Name  
FROM 
 INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS t1
INNER JOIN
 INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE t2
ON
 t1.CONSTRAINT_NAME = t2.CONSTRAINT_NAME
WHERE t2.TABLE_NAME='your_tablename_goes_here'

DECLARE @stmt VARCHAR(8000)
DECLARE @rowcnt INT

SELECT TOP 1 @stmt=cmd FROM dropping_constraints
SET @rowcnt=@@ROWCOUNT
WHILE @rowcnt<>0  
BEGIN
 EXEC (@stmt)
 SET @stmt = 'DELETE FROM dropping_constraints WHERE cmd ='+ QUOTENAME(@stmt,'''')
 EXEC (@stmt)
 SELECT TOP 1 @stmt=cmd FROM dropping_constraints
 SET @rowcnt=@@ROWCOUNT
END
DROP TABLE dropping_constraints

Dieser Eintrag wurde eingetragen von und ist abgelegt unter SQL Server. Tags: , ,

Noch kein Feedback


Formular wird geladen...