Foreign Key Constraints löschen

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

Noch kein Feedback
Einen Kommentar hinterlassen

Ihre E-Mail-Adresse wird nicht auf dieser Seite angezeigt.
SchlechtExzellent
(Zeilenumbrüche werden zu <br />)
(For my next comment on this site)
(Allow users to contact me through a message form -- Your email will not be revealed!)
Dies ist ein Captcha Bild. Es wird benutzt, um Massenzugriffe von Robotern zu verhindern.
Bitte gib die Zeichen des obigen Bildes ein. (Groß/Kleinschreibung ist wichtig)
Trackback-Adresse für diesen Eintrag
Dies ist ein Captcha Bild. Es wird benutzt, um Massenzugriffe von Robotern zu verhindern.
Bitte gib die Zeichen des obigen Bildes ein. (Groß/Kleinschreibung ist wichtig)