| 

.NET C# Java Javascript Exception

1
Über das Management Studio kann man das einfach konfigurieren. Aber wie realisiere ich es über ein Script?

edit: Es soll bei einer Spalte meiner Datenbank das Identity entfernt werden.
News:
01.09.2009
rubens 69 2 3
Was meinst du damit?
gfoidl 01.09.2009
Siehe Edit
rubens 01.09.2009
Meinst du mit ALTER TABLE? Ich verstehe immer noch nicht ganz was gemeint ist.
gfoidl 02.09.2009
Falls es geht ja. Aktuell würde ich die Spalte kopieren, die identity Spalte dropen und die neue umbenennen... Aber wirklich schön ist das nicht
rubens 02.09.2009
2 Antworten
2
Normalerweise ist dies eine Aufgabe für ALTER TABLE ALTER COLUMN ...
Wenn ich jedoch die Syntax und Beschreibung des ALTER TABLE für T-SQL richtig interpretiere, dann kann einer Spalte die IDENTITY-Eigenschaft nicht wieder genommen (ebensowenig wie nachträglich hinzugefügt) werden. Es gibt kein "DROP | ADD IDENTITY".
Eine IDENTITY-Spalte unterliegt sogar besonderen Einschränckungen. So kann der Datentyp einer Spalte mit IDENTITY-Eigenschaft nur geändert werden, wenn dieser neue Datentyp diese Eigenschaft ebenfalls unterstützt.

Normalerweise wird aber eine Spalte zur eindeutigen Identifizierung eines Datensatzes auch nicht geändert. Für den seltenen Fall das dies aus "administrativen" Gründen doch passieren muß, bleibt dann nur der Copy-Drop-Rename Weg.
02.09.2009
FalkP 3,3k 3 8
Danke FalkP, genau so ist es!
rubens 02.09.2009
1
Um das Identity zu entfernen kann man wie folgt vorgehen:
Rechtsklick auf die Tabelle -> Design
Dann in den Column Properties unter Identity Specification "No" auswählen.
Nun darf nicht gespeichert werden, sondern man lässt sich über "Generate changescript"(zu finden unter Table Designer) das Script generieren.
Nun kann man dieses Script ausführen und hat den gewünschten Effekt.
(Das Vorgehen ist wie von FalkP beschrieben, nur automatisch)
02.09.2009
rubens 69 2 3

Stelle deine Datenbank-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH