【发布时间】:2013-01-09 09:10:55
【问题描述】:
我目前正在尝试编写一个脚本,将一个用户的角色更改为另一个,而不在 SQL Server 数据库中创建重复。
例如:
User_ID Role_ID
---------------------
A X
A Z
B Y
C X
C Y
D Y
用户可能拥有多个角色。
我想更改它,使角色 Y 中的所有用户现在都是角色 X 的成员,并且角色 Y 将不再存在:
User_ID Role_ID
---------------------
A X
A Z
B X
C X
D X
通过将所有 Y 角色更新为 X,这可能会创建重复值;因此我只需要在新值不存在时更新,否则只需删除此值
【问题讨论】:
-
为什么不直接执行更新并在之后删除重复项?如果这不是一个选项:您使用的是哪个 RDBMS?
-
这张表有主键吗?
-
这两列都是外键。
-
您能否根据上面的示例数据显示预期结果? =)
-
已更新以显示预期结果。
标签: sql sql-server sql-update not-exists sql-delete