插入的复杂性

时间:2012-06-20 13:42:04

标签: sql sql-server sql-server-2008 insert insert-update

ERD

我的问题与旧客户加上过时的系统。问题的一部分。这3个表包含数据库中的现有数据。让我解释一下,情况是什么,然后我希望你们能帮助我完成这项工作。

情景

  • 你可能会想到很多产品,特别是ProductZone ......
  • 客户添加新区域(让我们假设新区域U,V,W,X,Y,Z ),遗憾的是没有用于ProductZone!
  • Costomer需要更新(插入)ProductZones以使所有现有产品引用新区域和一些旧区域(假设旧区域R,S,T ),如果它不存在,这里我遇到了......,需要你的帮助!

解释

如果我理解正确,我必须大量插入ProductZone,在这种情况下,通过复杂的T-SQL过滤条件和插入语句。

我很乐意接受任何建议,先谢谢。

1 个答案:

答案 0 :(得分:1)

此查询将填充ProductZone表中可用的现有产品的区域以及Product表中可用的新产品。

INSERT   INTO ProductZone 
SELECT ZoneNo, 
       ProductNo 
FROM   Product a 
       CROSS JOIN ZONE b 
WHERE  NOT EXISTS (SELECT 1 
                   FROM   ProductZone c 
                   WHERE  a.ProductNo = c.ProductNo 
                          AND a.zone = c.zone) 
相关问题