如何在SQL Server中更新具有唯一值的表FK列?

时间:2016-11-02 09:37:30

标签: sql sql-server

我有两张表DepartmentsWorkers

Departments表格有一个ManagerID列。我从Workers.ID选择managerID并添加到Departments.ManagerID但是没有人可以同时成为不同部门的经理。如何在更新查询中控制它?

部门表

enter image description here

工人表

enter image description here

1 个答案:

答案 0 :(得分:0)

如果您希望阻止管理员成为多个部门的经理,那么最简单的方法是在ManagerID列上的Departments表上创建唯一索引

create unique nonclustered index UX_ManagerID on Departments (ManagerID)
where ManagerID is NOT NULL;

现在所有试图让经理成为多个部门的老板的更新和插入都将失败。 在错误消息中,将出现名称“UX_ManagerID”,以便您可以在异常消息中检查该消息并向用户发送一条好消息。