1. ホーム
  2. sql

[解決済み】SQL Serverで外部キーを作成するにはどうすればよいですか?

2022-04-07 02:19:32

質問

SQL Server のオブジェクト作成コードをハンドコーディングしたことはありませんし、SQL Server と Postgres では外部キーのデクラレーションが異なるようです。以下は、これまでの私のSQLです。

drop table exams;
drop table question_bank;
drop table anwser_bank;

create table exams
(
    exam_id uniqueidentifier primary key,
    exam_name varchar(50),
);
create table question_bank
(
    question_id uniqueidentifier primary key,
    question_exam_id uniqueidentifier not null,
    question_text varchar(1024) not null,
    question_point_value decimal,
    constraint question_exam_id foreign key references exams(exam_id)
);
create table anwser_bank
(
    anwser_id           uniqueidentifier primary key,
    anwser_question_id  uniqueidentifier,
    anwser_text         varchar(1024),
    anwser_is_correct   bit
);

クエリを実行すると、このエラーが発生します。

Msg 8139, レベル 16, ステート 0, 行 9 で参照する列の数 外部キーの数とは異なります。 参照される列、テーブル 'question_bank'です。

エラーを発見できますか?

解決方法は?

create table question_bank
(
    question_id uniqueidentifier primary key,
    question_exam_id uniqueidentifier not null,
    question_text varchar(1024) not null,
    question_point_value decimal,
    constraint fk_questionbank_exams foreign key (question_exam_id) references exams (exam_id)
);