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

Jak programově změnit sloupec bez identity na sloupec s identitou?

Pokud vím, musíte vytvořit dočasnou tabulku s polem ID vytvořeným jako IDENTITY a poté zkopírovat všechna data z původní tabulky. Nakonec zrušíte původní tabulku a přejmenujete dočasnou. Toto je příklad s tabulkou (s názvem TestTable ), které obsahuje pouze jedno pole s názvem ID (celé číslo, bez 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. Vkládejte data do MySQL ve více tabulkách v C# efektivně

  2. ukládat arabštinu do SQL databáze

  3. Získejte dotaz zpět z připraveného výpisu PDO

  4. Použití createNativeQuery ke spojení dvou entit bez cizího klíče