Maison > base de données > tutoriel mysql > Comment établir des contraintes de clé étrangère dans SQL Server ?

Comment établir des contraintes de clé étrangère dans SQL Server ?

Mary-Kate Olsen
Libérer: 2025-01-01 12:40:11
original
1018 Les gens l'ont consulté

How to Establish Foreign Key Constraints in SQL Server?

Établissement de contraintes de clés étrangères dans SQL Server

Le maintien de l'intégrité des données est crucial dans tout système de base de données. SQL Server offre la possibilité d'appliquer des relations entre les tables à l'aide de contraintes de clé étrangère. Cependant, la déclaration des clés étrangères diffère des autres systèmes de gestion de bases de données comme PostgreSQL.

Syntaxe et considérations

Voici comment créer une clé étrangère dans SQL Server :

ALTER TABLE <child_table>
ADD CONSTRAINT <constraint_name>
FOREIGN KEY (<child_column>)
REFERENCES <parent_table>(<parent_column>)
Copier après la connexion

Assurez-vous que le nombre de colonnes référencées dans la table enfant correspond au nombre de colonnes référencées dans la table parent. Sinon, vous rencontrerez une erreur similaire à :

Msg 8139, Level 16, State 0, Line 9
Number of referencing columns in foreign key differs from number of referenced columns, table 'question_bank'.
Copier après la connexion

Dépannage : syntaxe incorrecte

Le code SQL fourni pour créer la table question_bank contient une erreur. La colonne question_exam_id de la table question_bank doit faire référence à la colonne exam_id de la table exams.

create table question_bank
(
    question_id uniqueidentifier primary key,
    question_exam_id uniqueidentifier not null, <!-- This should be a foreign key -->
    question_text varchar(1024) not null,
    question_point_value decimal,
    constraint question_exam_id foreign key references exams(exam_id)
);
Copier après la connexion

Syntaxe alternative : ajout de contraintes ultérieurement

Vous pouvez également créer une clé étrangère contraintes après avoir créé la table enfant à l'aide de l'instruction ALTER TABLE :

alter table question_bank
add constraint question_exam_id_fk foreign key (question_exam_id) references exams(exam_id)
Copier après la connexion

Cette méthode vous permet pour définir les contraintes séparément de la création de tables, offrant ainsi une plus grande flexibilité et un plus grand contrôle sur le schéma de la base de données.

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