涉及多个条件的表中的更新(一对多关系)

时间:2014-11-07 11:27:09

标签: sql sql-server sql-server-2008

我在ms sql server中创建了三个表,如Product,Brands和ProductBrands 这些表包含以下数据

产品(PId - PName - PDescription)

  • 1 - 手机 - 等等等等。
  • 2 - T.V - blah blah
  • 3 - A.C - blah blah

品牌(BId - BName)

  • 1 - 三星
  • 2 - 索尼
  • 3 - L.G
  • 4 - Apple

ProductsBrands(PBId - PId - BId)

  • 1 - 1 - 1
  • 2 - 1 - 2
  • 3 - 1 - 3
  • 4 - 2 - 1
  • 5 - 2 - 3

...

...

现在我必须在以下条件下对Product表执行更新操作

  • 如果用户选择产品"让我们说移动",他将只选择三星和L.G 所以对于这个要求,ProductsBrands中的更新应该是这样的

ProductsBrands(PBId - PId - BId)

  • 1 - 1 - 1
  • {2 - 1 - 2}应该删除
  • 3 - 1 - 3

...

...

  • 如果用户选择产品"让我们说移动",他会选择Apple 所以对于这个要求,ProductsBrands中的更新应该是这样的

ProductsBrands(PBId - PId - BId)

  • 1 - 1 - 1
  • 2 - 1 - 2
  • 3 - 1 - 3
  • 4 - 2 - 1
  • 5 - 2 - 3
  • 6 - 1 - 4 {新条目}

  • 如果用户选择产品"让我们说移动",他会选择三星,L.G和Apple 所以对于这个要求,ProductsBrands中的更新应该是这样的

ProductsBrands(PBId - PId - BId)

  • 1 - 1 - 1
  • {2 - 1 - 2}应该删除
  • 3 - 1 - 3
  • 4 - 2 - 1
  • 5 - 2 - 3
  • 6 - 1 - 4 {新条目}

现在我非常困惑如何为所有上述条件编写存储过程

请帮帮我!!!

1 个答案:

答案 0 :(得分:1)

你的情景对我来说有点模棱两可。因此,我们将其简化如下,并检查我是否正确: 你想要插入或删除甚至更新表中的记录或一组记录(比如tbl1),只要一个条件(比如说con1)是正确的(假设con1是正确的,那么我应该插入,否则删除或者应该更新)。 如果这是您正在寻找的,那么您可以使用MERGE语句(Read More)。 如果这是您正在寻找的,并且您对MERGE声明有疑问,请告诉我们澄清它。 其他链接:HereHere