Maison > base de données > tutoriel mysql > Pourquoi est-ce que j'obtiens l'erreur « Impossible d'insérer la valeur NULL dans la colonne 'id' » dans SQL Server ?

Pourquoi est-ce que j'obtiens l'erreur « Impossible d'insérer la valeur NULL dans la colonne 'id' » dans SQL Server ?

Barbara Streisand
Libérer: 2025-01-24 11:02:13
original
585 Les gens l'ont consulté

Why Am I Getting the

Erreur « Impossible d'insérer NULL dans la colonne 'id' » de SQL Server : un guide complet

L'insertion de données dans une base de données SQL Server nécessite de fournir des valeurs pour toutes les colonnes, notamment la clé primaire. Si une colonne est désignée comme NOT NULL et n'a pas de valeur par défaut, tenter d'insérer un NULL déclenchera une erreur.

Scénario : Insertion dans une table de rôles

Considérez cette instruction SQL :

<code class="language-sql">INSERT INTO role (name, created) VALUES ('Content Coordinator', GETDATE()), ('Content Viewer', GETDATE())</code>
Copier après la connexion

Cela tente d'ajouter deux lignes à la table role (contenant les colonnes name et created – cette dernière avec un horodatage par défaut). La colonne de clé primaire, id, est omise.

Répartition des erreurs

SQL Server exige des valeurs de clé primaire explicites ou une génération automatique. Puisque id n'est pas spécifié et n'a pas de valeur par défaut, SQL Server l'attribue NULL. Cependant, id est défini comme NOT NULL, empêchant l'insertion de NULL. Le message d'erreur résultant est :

<code>Msg 515, Level 16, State 2, Line 1
Cannot insert the value NULL into column 'id', table 'CMT_DEV.dbo.role'; column does not allow nulls. INSERT fails.
The statement has been terminated.</code>
Copier après la connexion

Solution : incrémentation automatique à la rescousse

La solution est de s'assurer que id reçoive toujours une valeur valide. La méthode la plus courante consiste à utiliser l'incrémentation automatique :

Utilisation de SQL Server Management Studio (SSMS) :

  1. Ouvrez le tableau role en mode Conception.
  2. Sélectionnez la colonne id et accédez à ses propriétés de colonne.
  3. Sous « Spécification de l'identité », définissez « Is Identity » sur « Oui » et « Incrément d'identité » sur 1.

Cela configure id pour qu'il incrémente automatiquement chaque nouvelle ligne, éliminant ainsi la spécification manuelle de la clé primaire.

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