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

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

Mary-Kate Olsen
リリース: 2025-01-01 12:40:11
オリジナル
1016 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート