Maison > base de données > tutoriel mysql > Une table SQL Server peut-elle avoir plus d'une colonne d'identité ?

Une table SQL Server peut-elle avoir plus d'une colonne d'identité ?

Patricia Arquette
Libérer: 2024-12-25 07:17:20
original
646 Les gens l'ont consulté

Can a SQL Server Table Have More Than One Identity Column?

Une table SQL Server peut-elle avoir deux colonnes d'identité ?

De nombreux concepteurs de bases de données rencontrent le besoin d'avoir plusieurs colonnes dans une table qui s'auto- incrément, que ce soit pour la clé primaire ou à d'autres fins. Cependant, dans SQL Server, cela n'est pas directement possible. Selon la documentation de référence Transact-SQL :

Une seule colonne d'identité peut être créée par table.

Exemple :

Considérez l'instruction SQL suivante , qui tente de créer une table avec deux colonnes d'identité :

CREATE TABLE [dbo].[Foo](
    [FooId] [int] IDENTITY(1,1) NOT NULL,
    [BarId] [int] IDENTITY(1,1) NOT NULL
)
Copier après la connexion

Cette instruction échouera avec ce qui suit erreur :

Msg 2744, Level 16, State 2, Line 1
Multiple identity columns specified for table 'Foo'. Only one identity column per table is allowed.
Copier après la connexion

Solutions alternatives :

Si vous devez avoir plusieurs valeurs à incrémentation automatique dans un tableau, envisagez les solutions alternatives suivantes :

  • Clé primaire composite : Créez une clé primaire qui combine plusieurs colonnes en une seule et unique identifiant.
  • Colonne de non-identité : Créez une colonne de non-identité et incrémentez manuellement sa valeur à l'aide d'un déclencheur ou d'un autre mécanisme.
  • Tableau séparé : Créez une table séparée pour stocker les valeurs auto-incrémentées et référencez-la depuis votre table principale à l'aide d'un étranger key.

Bien que SQL Server ne prenne pas en charge nativement plusieurs colonnes d'identité, ces solutions alternatives peuvent fournir les fonctionnalités dont vous avez besoin.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal