LeKuchen: MSSQL IDENTITY entfernen

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

  1. Hallo,

    scheinbar nicht lange genug gesucht. Mit:

    ALTER TABLE [table] ADD PRIMARY KEY (pid)

    scheint es zu gehen.

    Gruss & Danke,
    LeKuchen

    1. 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