-1

我有一个表,我需要为 450 行添加信息,我可以用唯一的订单号识别每一行,并且只需要为每个订单号更新表中的 4 行。

update ordercontacts
set firstname = 'joe', lastname = 'smith', email = 'joesmith@smith.com', contacttypeid = 13
where orderid = 1284480

这只是取代了我的价值观,所以我必须解决这个问题

我也试过这个

insert into ordercontacts
(firstname, lastname, email, contacttypeid)
values
('joe', 'smith', 'jowsmith@smith.com', 13)
where orderid in (1284480)

但语法不正确,我不确定正确的语法是什么

我曾认为这样的事情会奏效,但显然没有。谁能帮我吗?每个订单号已经附有不同的联系人,我基本上希望最终结果是这样的:

order     firstname   lastname        email               contacttypeid
1284480   joe        smith      joesmith@smith.com         13
1284480   steve      andrews      steve@steve.com         11

我希望在每个订单号已经存在的联系人之上添加一个新联系人。我拥有的更新语法只是替换已经存在的信息。

4

3 回答 3

1

我希望在每个订单号已经存在的联系人之上添加一个新联系人。

更新语句不能插入新行。您不能通过您发布的更新声明“添加新联系人”。

你需要一份insert声明。

于 2012-10-26T17:52:59.337 回答
1
insert into ordercontacts
(orderid, firstname, lastname, email, contacttypeid)
values
(1284480,'joe', 'smith', 'jowsmith@smith.com', 13)
于 2012-10-26T17:54:36.723 回答
1
insert into table_name (order, firstname, lastname, email, contacttypeid) 
values (1284480, 'joe'...);

您想要插入值而不是更新。更新将覆盖现有的值,本质上它是“替换 id = y 行中的 x”。插入实际上会创建一个新行。

于 2012-10-26T17:55:20.557 回答