SQL: Constraints hinzufügen

by Haf
18.05.2009
tags: ,
 

Beim Leeren von Datenbank-Tabellen müssen immer die vorhandenen Constraints beachtet werden. Das Löschen von Tabellen-Zeilen, obwohl andere darauf verweisen, ist nicht erlaubt (referenzielle Integrität).
Versucht man es doch (mittels TRUNCATE [1]) kriegt man eine Fehlermeldung.
Hier kann man nun entweder DELETE Statements [2] nutzen, was länger dauern kann, oder man verwendet doch TRUNCATE und muss die vorhandenen Constraints löschen.

ALTER TABLE TableName DROP CONSTRAINT FK_ConstraintName

Durch das Löschen aller Constraints der betroffenen Tabelle kann diese dann mit TRUNCATE geleert werden.
Zum Hinzufügen der Constraints:

ALTER TABLE TableName WITH CHECK ADD CONSTRAINT FK_ConstraintsName
	FOREIGN KEY (columnName) REFERENCES TableNameReference (id)

Constraints können nur dann hinzugefügt werden, wenn sie nicht vorhanden sind. Mit einer Prüfung sieht das dann so aus:

IF NOT EXISTS (SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
                         WHERE TABLE_NAME='TableName'
			     AND CONSTRAINT_NAME='FK_ConstraintName'
			     AND CONSTRAINT_TYPE='FOREIGN KEY')
   /* SQL Statement to add constraint, see above listing */

Links:
[1] SQL Drop (TRUNCATE)
[2] SQL DELETE
[3] SQL FK Constraints

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • MisterWong
  • Technorati
  • Yigg
No Comments

Leave A Comment

Note: You can use basic XHTML in your comments. Your email address will never be published.

Subscribe to this comment feed via RSS