更新 table 以插入新行(如果不存在)
Update table to insert new row if it does not exist
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
如何更新我的 table 中的所有记录 以插入新行 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
UPDATE
语句影响 table 中已经存在的行。
要向 table 添加新行,您需要使用 INSERT
语句。
(请注意,问题中的 UPDATE
语句将更新 table 中的 每个 行;没有任何 WHERE 子句。)
条件插入可能如下所示:
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)
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
如何更新我的 table 中的所有记录 以插入新行 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
UPDATE
语句影响 table 中已经存在的行。
要向 table 添加新行,您需要使用 INSERT
语句。
(请注意,问题中的 UPDATE
语句将更新 table 中的 每个 行;没有任何 WHERE 子句。)
条件插入可能如下所示:
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)