Maison >base de données >tutoriel mysql >Comment puis-je modifier les valeurs des colonnes d'identité dans SQL Server ?

Comment puis-je modifier les valeurs des colonnes d'identité dans SQL Server ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-07 14:03:41843parcourir

How Can I Modify Identity Column Values in SQL Server?

Mise à jour des colonnes d'identité dans SQL Server

Pour ceux qui cherchent à modifier la colonne d'identité dans SQL Server, il est crucial de comprendre que les mises à jour directes sont pas autorisé. Contrairement aux colonnes classiques, les colonnes d'identité ne peuvent pas être simplement mises à jour à l'aide d'une instruction de mise à jour.

Alternatives aux mises à jour des colonnes d'identité

Bien que la mise à jour directe d'une colonne d'identité soit impossible, il existe des alternatives approches pour obtenir des résultats similaires :

Mise à jour des valeurs d'identité pour les nouveaux Enregistrements

Pour garantir que les nouveaux enregistrements commencent par une valeur d'identité spécifique, utilisez DBCC CHECKIDENT. Cette commande vérifie la valeur d'identité actuelle et la réinitialise si nécessaire.

DBCC CHECKIDENT('tableName', RESEED, NEW_RESEED_VALUE)

Mise à jour des valeurs d'identité pour les enregistrements existants

Pour mettre à jour de manière sélective les valeurs d'identité des enregistrements existants, utilisez IDENTITY_INSERT. Cette fonctionnalité permet l'insertion explicite de valeurs dans la colonne d'identité.

SET IDENTITY_INSERT YourTable {ON|OFF}

Exemple

Pour insérer un nouvel enregistrement avec une valeur d'identité spécifique :

-- Enable identity insert
SET IDENTITY_INSERT YourTable ON

-- Insert record
INSERT INTO YourTable(IdentityCol, otherCol) VALUES(13,'myValue')

-- Disable identity insert
SET IDENTITY_INSERT YourTable OFF

Pour mettre à jour un enregistrement existant :

-- Delete old record
DELETE FROM YourTable WHERE ID=3

-- Insert record with new identity value
SET IDENTITY_INSERT YourTable ON
INSERT INTO YourTable(ID, otherCol) VALUES(13,'newValue')
SET IDENTITY_INSERT YourTable OFF

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn