Ich wollte eine Spalte in einer Tabelle SQL Server 2005 zu IDENTITY (1,1)
Übrigens ist diese Tabelle leer und die Spalte geändert werden, ist ein Primärschlüssel.
Diese Spalte ist auch ein Fremdschlüssel für zwei andere Tabellen.
sql server helper gespeicherte Prozedur oder Dienstprogramm für alter Tabelle Spalte IDENTITY (1,1) ändern
Nach dem Googling habe ich festgestellt, dass Sie die Alter Tabellensyntax nicht verwenden können, um eine Spalte zu ändern und sie zu einer Indentity-Spalte zu machen.
Link # 1: How do I add the identity property to an existing column in SQL Server
Link # 2: Adding an identity to an existing column -SQL Server
ich die abhängigen Tabellen Prüfung endete (2 davon) Entfernen der Fremdschlüssel dann (das Skript von SSMS generiert) die Haupttabelle dann fallen wieder -Erstellen mit Identität. (Könnte die Umbenennungsoption auch hier ausprobieren)
Dann wurden die Fremdschlüssel für die früheren abhängigen zwei Tabellen neu erstellt.
Aber all dies war manuelle Arbeit, irgendwelche Skripte oder SPs da draußen, um dies zu erleichtern.
Im Idealfall alle diese Schritte würden durch ein solches Skript/Werkzeug/Dienstprogramm erfolgen:
Schlüssel- prüfen abhängigen Tabellen
- Schaffen erzeugen und Drop-Fremdschlüssel-Skripte für diese
- Schaffen erzeugen Skript für die Haupttabelle
- die Haupttabelle löschen (oder die Tabelle umbenennen, wenn die Tabelle Daten enthält)
- neu erstellen Sie die Tabelle mit Identitätsspalte aktiviert
- neu erstellen Fremdschlüssel
+1, es gibt so viele Dinge zu ändern mit Tabellen/Spalten/Schlüssel/Constraints/etc. es wäre unmöglich, für jeden ein Dienstprogramm zu haben. Deshalb können Sie die GUI verwenden, um ein Skript zu generieren –
SSMS löst einen Fehler aus, das war die erste Option, die ich ausprobiert habe. Sollte in der Frage erwähnt haben ... –
Danke für den Link, Deaktivieren der Option funktionierte wie ein Charme. –