代码之家  ›  专栏  ›  技术社区  ›  DhavalR

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

  •  0
  • DhavalR  · 技术社区  · 9 年前

    我有四张桌子 Store , Employee , Customer , Address .我已将前三张表链接到 住址 。现在我想删除此 FK 并将这些表引用到 住址 .我该怎么做?

    表格结构:

    百货商店 :

        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 回复  |  直到 9 年前
        1
  •  1
  •   spencer7593    9 年前

    可以使用ALTERTABLE语句删除FOREIGNKEY约束。例如

    ALTER TABLE [Address] DROP CONSTRAINT [FK_Address_Store]
    

    要删除列,请再次使用ALTER TABLE语句。

    ALTER TABLE [Address] DROP COLUMN [ID]
    

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

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

    如果不了解数据模型,就不可能为实现模型而对数据库表进行的更改提供建议。