ホームページ >データベース >mysql チュートリアル >SQL Server で外部キー制約を確立するにはどうすればよいですか?

SQL Server で外部キー制約を確立するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-01 12:40:111019ブラウズ

How to Establish Foreign Key Constraints in SQL Server?

SQL Server での外部キー制約の確立

データの整合性を維持することは、どのデータベース システムにおいても重要です。 SQL Server は、外部キー制約を使用してテーブル間の関係を強制する機能を提供します。ただし、外部キーの宣言は、PostgreSQL などの他のデータベース管理システムとは異なります。

構文と考慮事項

SQL Server で外部キーを作成する方法は次のとおりです。

ALTER TABLE <child_table>
ADD CONSTRAINT <constraint_name>
FOREIGN KEY (<child_column>)
REFERENCES <parent_table>(<parent_column>)

子テーブルの参照列の数が親テーブルの参照列の数と一致することを確認します。 テーブル。それ以外の場合は、次のようなエラーが発生します。

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

トラブルシューティング: 構文が正しくありません

question_bank テーブルを作成するために提供された SQL コードにエラーがあります。 question_bank テーブルの question_exam_id 列は、exems テーブルの Exam_id 列を参照する必要があります。

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)
);

代替構文: 制約を後で追加する

外部キーを作成することもできます。 ALTER TABLE を使用して子テーブルを作成した後の制約ステートメント:

alter table question_bank
add constraint question_exam_id_fk foreign key (question_exam_id) references exams(exam_id)

このメソッドを使用すると、テーブルの作成とは別に制約を定義できるため、データベース スキーマの柔軟性と制御が向上します。

以上がSQL Server で外部キー制約を確立するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。