如何更新 SQL 服务器中的 Bridge table?

How to update the Bridge table in SQL Server?

我有三个 table tblSubjecttblSubjectGrouptblSubjectGroupDetails

tblSubject table 有以下列:

subId (PK, char(36), not null)
subName (varchar(50), not null) 

tblSubjectGroup table 有这些列:

subGroupId (PK, char(36), not null)
subGroupName (varchar(50), not null)

tblSubjectGroupDetails是上述table之间的桥梁table,它们具有多对多的关系:

subGroupId (FK, char(36), not null)
subId (FK, char(36), not null)

我将以下虚拟数据放入这些 table 中:

tblSubject:

英语、数学、物理、化学、科学、生物、经济学、地理、历史

tblSubjectGroup:

第 1 组、第 2 组、第 3 组

在这里,我想用这些主题更新 Group2Geography, History, Science.

(插入和删除对我来说没问题,但我不知道如何更新桥table)

UPDATE tblSubjectGroupDetails 
SET subId = '......' 
WHERE subGroupId = '......'

以上语句将更改特定主题组的所有主题。我只想将 Group2 的经济学更改为科学。

对了,忘了说tblSubjectGroupDetails有复合主键。

如何在 SQL 服务器中执行此操作?

I want to change only Economics to Science for Group2.

您的 where 子句中需要另一个条件,例如:

UPDATE tblSubjectGroupDetails SET subId = science_id
WHERE subGroupId = group_2_id
  and subId = economics_id;

只需将 ID 替换为正确的值即可。

当然,如果您的 Group2 在 table.

中已经有一个科学主题记录,这将不起作用(会产生主键约束冲突)