如何在SQL Server中创建外键?
我从来没有为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
);
当我运行查询时,我得到这个错误:
消息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)
);
如果你只是想自己创建约束,你可以使用ALTER TABLE
alter table MyTable
add constraint MyTable_MyColumn_FK FOREIGN KEY ( MyColumn ) references MyOtherTable(PKColumn)
我不会推荐Sara Chipps提到的用于内联创建的语法,只是因为我宁愿说出我自己的约束。
您还可以使用以下命令来命名外键约束:
CONSTRAINT your_name_here FOREIGN KEY (question_exam_id) REFERENCES EXAMS (exam_id)
链接地址: http://www.djcxy.com/p/94423.html
上一篇: How do I create a foreign key in SQL Server?
下一篇: Check if table or column exists in SQL Server database table