sql >> Databáze >  >> RDS >> Sqlserver

Přidejte sloupec primárního klíče do tabulky SQL

V SQL Server 2005 nebo novějším můžete použít tento skript:

-- drop PK constraint if it exists
IF EXISTS (SELECT * FROM sys.key_constraints WHERE type = 'PK' AND parent_object_id = OBJECT_ID('dbo.YourTable') AND Name = 'PK_YourTable')
   ALTER TABLE dbo.YourTable
   DROP CONSTRAINT PK_YourTable
GO

-- drop column if it already exists
IF EXISTS (SELECT * FROM sys.columns WHERE Name = 'RowId' AND object_id = OBJECT_ID('dbo.YourTable'))
    ALTER TABLE dbo.YourTable DROP COLUMN RowId
GO

-- add new "RowId" column, make it IDENTITY (= auto-incrementing)
ALTER TABLE dbo.YourTable 
ADD RowId INT IDENTITY(1,1)
GO

-- add new primary key constraint on new column   
ALTER TABLE dbo.YourTable 
ADD CONSTRAINT PK_YourTable
PRIMARY KEY CLUSTERED (RowId)
GO

Tento skript samozřejmě může selhat, pokud na tento dbo.YourTable odkazují jiné tabulky pomocí omezení cizího klíče na již existující RowId sloupec...

Aktualizace: a samozřejmě , kdekoli, kde používám dbo.YourTable nebo PK_YourTable , musíte tento zástupný symbol nahradit skutečným názvy tabulek / omezení z vaší vlastní databáze (ve své otázce jste se nezmínili o jaké to byly.....)



  1. Jak ukládat data s dynamickým počtem atributů v databázi

  2. Vypočítejte součet datumu a času v HH:MM:SS v sql

  3. Funkce SOUNDEX() v Oracle

  4. Získávání dat z mysql do StreamBuilder Flutter