id | Product | PrdouctOption| ServiceId
1 | 1 | 1 | 12
2 | 2 | 1 | 12
3 | 1 | 1 | 13
4 | 2 | 1 | 13
5 | 1 | 2 | 14
6 | 1 | 1 | 15
如何更新表格中的所有记录,以插入新行 product = 2 和 productOption = 1 ,如果不是存在 ServiceId 。 (在本例中为serviceId 14和15)
我似乎无法获得正确的逻辑。
到目前为止,这就是我所拥有的......
UPDATE dbo.MyTable
SET Product = 2, ProductOption = 1
//Can't figure out the logic for if it doesn't exist for a serviceid
答案 0 :(得分:2)
条件插入可能如下所示:
INSERT INTO table1 (Product,ProductOption, ServiceId)
SELECT DISTINCT 2,1, serviceId FROM Table1 t1
WHERE NOT EXISTS
(SELECT 1 FROM table1
WHERE product = 2
AND ProductOption = 1
AND ServiceId = t1.ServiceId)
答案 1 :(得分:0)
UPDATE
语句会影响表中已存在的行。
要向表中添加新行,您需要使用INSERT
语句。
(请注意,问题中的UPDATE
语句将更新表中的每个行;没有任何WHERE子句。)