MSSQL IDENTITY entfernen
LeKuchen
- datenbank
Hallo zusammen,
ich würde gerne per SQL-Skript die IDENTITY einer COLUMN entfernen, die Spalte aber an sich so belassen.
Es ist Teil eines Workarounds um in eine Altdaten-Tabelle nachträglich eine Primary Key Spalte einzufügen:
1>ALTER TABLE [table] ADD [pid] [int] IDENTITY (1, 1) NOT NULL
--> Hier IDENTITY wieder entfernen: Bei
2>ALTER TABLE [table] ALTER COLUMN [pid] [int] NOT NULL
bleibt die IDENTITY bestehen!
3>ALTER TABLE [table] WITH NOCHECK ADD CONSTRAINT [PK_table] PRIMARY KEY CLUSTERED ( [PID] ) ON [PRIMARY]
Ein Alternativvorschlag zum Einfügen einer PK-Spalte wäre auch super...
Gruß
LeKuchen
Hallo,
scheinbar nicht lange genug gesucht. Mit:
ALTER TABLE [table] ADD PRIMARY KEY (pid)
scheint es zu gehen.
Gruss & Danke,
LeKuchen
Tag,
naja, ganz so einfach war es nun doch nicht, aber so geht es:
1> ALTER TABLE [table] ADD [pid] [int]
2> ALTER TABLE [table] ADD [tmpid] [int] IDENTITY (1, 1) NOT NULL
3> UPDATE [table] set [pid] = [tmpid]
4> DELETE FROM [table] WHERE [pid] = NULL
5> ALTER TABLE [table] ALTER COLUMN [pid] [int] NOT NULL
6> ALTER TABLE [table] WITH NOCHECK ADD CONSTRAINT [PK_table] PRIMARY KEY CLUSTERED ( [pid] ) ON [PRIMARY]
7> ALTER TABLE [table] DROP COLUMN [tmpid]
Gruß
LeKuchen