sql >> Database >  >> RDS >> Sqlserver

Hoe de identiteitskolom in SQL Server bij te werken?

Je kunt de identiteitskolom niet bijwerken.

SQL Server staat niet toe om de identiteitskolom bij te werken, in tegenstelling tot wat u kunt doen met andere kolommen met een update-instructie.

Hoewel er enkele alternatieven zijn om aan een soortgelijk soort vereiste te voldoen.

  • Als de kolomwaarde van de identiteit moet worden bijgewerkt voor nieuwe records

Gebruik DBCC CHECKIDENT die de huidige identiteitswaarde voor de tabel controleert en, indien nodig, de identiteitswaarde wijzigt.

DBCC CHECKIDENT('tableName', RESEED, NEW_RESEED_VALUE)
  • Als de kolomwaarde van de identiteit moet worden bijgewerkt voor bestaande records

Gebruik IDENTITY_INSERT waarmee expliciete waarden kunnen worden ingevoegd in de identiteitskolom van een tabel.

SET IDENTITY_INSERT YourTable {ON|OFF}

Voorbeeld:

-- 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. Hoe invoer- en uitvoerkolommen dynamisch in SSIS in kaart te brengen?

  2. Een bug voor de schatting van de kardinaliteit van de subquery

  3. PHP &MySQL paginering

  4. Hoe u id's op Bijlagen kunt retourneren met Ibatis (met RETURNING-sleutelwoord)