如何删除两个表之间的关系?

时间:2015-11-21 11:57:29

标签: sql

我创建了两个表如何在sql代码中删除它们之间的关系;

Course表:

create table course 
(
     course_id int primary key identity (1,1),
     course_name varchar(40)
);

Employee表:

create table employee 
(
     emp_id int identity(1,1) primary key,
     fname varchar(30),
     course_id int 
         foreign key references course (course_id)
);

1 个答案:

答案 0 :(得分:0)

如果是 SQL Server - 那么您可以使用以下语句找出FK约束的名称:

SELECT name
FROM sys.foreign_keys
WHERE parent_object_id = OBJECT_ID('employee')
AND referenced_object_id = OBJECT_ID('course')

一旦你有了这个FK约束名,就可以使用通常的

ALTER TABLE dbo.employee DROP CONSTRAINT (name of the FK constraint)

这将是系统生成的任意名称(类似于FK__employee__cours__7EB7AD3A或类似名称) - 这就是我建议始终明确命名约束的原因 - 像这样:

create table employee 
(
     emp_id int identity(1,1) primary key,
     fname varchar(30),
     course_id int 
         constraint fk_employee_course
         foreign key references course (course_id)
);

现在,您知道该FK约束的名称是什么 - 您命名为fk_employee_course。如果您收到有关FK约束违规的任何错误消息,这也是有益的 - 如果该名称直观且显而易见,那么您就会知道出了什么问题