Spalte nachträglich in IDENTITY Spalte ändern

By Frank Kalis

Posted on Jul 13, 2004 von in SQL Server

Nun, erst einmal gibt es keine *IDENTITY* Spalte. IDENTITY ist eine Eigenschaft, die für numerische Spalten definiert werden kann.


Leider lässt sich die IDENTITY Eigenschaft nicht einfach nachträglich für eine numerische Spalte defineren. Dafür muss die originale Spalte gelöscht werden und mit der IDENTITY Eigenschaft neu erstellt werden. Das folgende Beispiel geht von der Annahme aus, dass die numerische Spalte als PrimaryKey der Tabelle benutzt wird.:
ALTER TABLE Foobar
	DROP CONSTRAINT PK_Foobar
	, COLUMN Foobar_ID
ALTER TABLE Foobar 
	ADD Foobar_ID(INT IDENTITY(1,1))
	, CONSTRAINT PK_Foobar PRIMARY KEY (Foobar_ID)

Komplizierter wird es, wenn bestehende Daten in die *neue IDENTITY Spalte* übernommen werden sollten. Da es hier keinen einfacheren Weg mit T-SQL gibt, kann man diesen Vorgang genausogut auch mit dem Enterprise Manager erledigen, indem man für die numerische Spalte die IDENTITY Eigenschaft definiert. Es lohnt sich, einen Blick auf das Änderungsskript zu werfen. Hinter den Kulissen passiert jetzt eine ganze Menge mehr, als man vermuten würde.

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

Noch kein Feedback


Formular wird geladen...