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

Jak aktualizovat sloupec identity na serveru SQL?

Nelze aktualizovat sloupec identity.

SQL Server neumožňuje aktualizovat sloupec identity na rozdíl od toho, co můžete udělat s jinými sloupci pomocí příkazu aktualizace.

Ačkoli existují některé alternativy, jak dosáhnout podobného druhu požadavku.

  • Když je potřeba aktualizovat hodnotu sloupce Identita pro nové záznamy

Použijte DBCC CHECKIDENT který zkontroluje aktuální hodnotu identity pro tabulku a v případě potřeby změní hodnotu identity.

DBCC CHECKIDENT('tableName', RESEED, NEW_RESEED_VALUE)
  • Když je potřeba aktualizovat hodnotu sloupce Identita pro stávající záznamy

Použijte IDENTITY_INSERT což umožňuje vložení explicitních hodnot do sloupce identity v tabulce.

SET IDENTITY_INSERT YourTable {ON|OFF}

Příklad:

-- Set Identity insert on so that value can be inserted into this column
SET IDENTITY_INSERT YourTable ON
GO
-- Insert the record which you want to update with new value in the identity column
INSERT INTO YourTable(IdentityCol, otherCol) VALUES(13,'myValue')
GO
-- Delete the old row of which you have inserted a copy (above) (make sure about FK's)
DELETE FROM YourTable WHERE ID=3
GO
--Now set the idenetity_insert OFF to back to the previous track
SET IDENTITY_INSERT YourTable OFF


  1. Získejte všechna data mezi dvěma daty na serveru SQL Server

  2. Chyba:Žádný modul s názvem psycopg2.extensions

  3. mySQL Vrátí prvních 5 z každé kategorie

  4. Funkce LOCALTIMESTAMP() v Oracle