sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan ændres programmatisk ikke-identitetskolonne til identitet 1?

Så vidt jeg ved, skal du oprette en midlertidig tabel med ID-feltet oprettet som IDENTITY, derefter kopiere alle data fra den originale tabel. Til sidst slipper du den originale tabel og omdøber den midlertidige. Dette er et eksempel med en tabel (ved navn TestTable ), der kun indeholder ét felt, kaldet ID (heltal, ikke IDENTITY):

BEGIN TRANSACTION
GO
CREATE TABLE dbo.Tmp_TestTable
    (
    ID int NOT NULL IDENTITY (1, 1)
    )  ON [PRIMARY]
GO
SET IDENTITY_INSERT dbo.Tmp_TestTable ON
GO
IF EXISTS(SELECT * FROM dbo.TestTable)
     EXEC('INSERT INTO dbo.Tmp_TestTable (ID)
        SELECT ID FROM dbo.TestTable WITH (HOLDLOCK TABLOCKX)')
GO
SET IDENTITY_INSERT dbo.Tmp_TestTable OFF
GO
DROP TABLE dbo.TestTable
GO
EXECUTE sp_rename N'dbo.Tmp_TestTable', N'TestTable', 'OBJECT' 
GO
COMMIT


  1. MySQL overlappende tidsperioder baseret på kriterier

  2. Sådan får du førerklassenavn (ikke drivernavn) fra jdbc-forbindelse

  3. Sådan gemmer du data i databasen i LARAVEL 5.2

  4. Knee-Jerk Performance Tuning:Forkert brug af midlertidige borde