删除SQL Server中的外键和引用表

时间:2016-04-22 18:43:00

标签: sql-server sql-server-2008 management-studio-express

我有四个表StoreEmployeeCustomerAddress。我已将前三个表格链接到Address。现在,我想删除此FK并将这些表引用到Address。我该怎么办?

表格结构:

商品

    StoreID(PK), BranchName

员工

    EmpID(PK), Name

客户

    CustID(PK), Name

地址

    AddID(PK), 
    ID(FK to Store.StoreID, Employee.EmpID, Customer.CustID), 
    AddressDetail

我想删除FK上的Address.ID,并将其引用到三个表格。

1 个答案:

答案 0 :(得分:1)

您可以使用ALTER TABLE语句删除FOREIGN KEY约束。例如

ALTER TABLE [Address] DROP CONSTRAINT [FK_Address_Store]

再次删除列,ALTER TABLE语句。

ALTER TABLE [Address] DROP COLUMN [ID]

您正在尝试实施的数据模型一点也不清楚。有多少地址可以与客户相关?只有一个,还是多个?可以将同一地址与客户和员工相关联吗?特定地址是否可以与多个客户相关?

在我的实体关系模型中,"地址"通常是复合属性,而不是实体。通常,Address是一个多值属性(例如,客户可以拥有多个地址,或多个PhoneNumber)。有时,地址将是特定类型的地址(送货地址,账单地址,办公地址,家庭住址),就像电话号码可以是一种类型(主要,移动,办公室,传真等)。

如果不了解数据模型,就无法就数据库表中应对您实施模型所做的更改提出建议。