我已经查看了其他问题,但似乎无法找到答案。
当使用insert into select语句时,我的查询总是会创建新行。
但是,我想要一个脚本,将数据插入满足条件的特定行。
例如:我有两个表,订单和客户:
Orders:
ORDER_Num
CUSTOMER_ID
CUSTOMER_NAME
Order_Value
Customers:
CUSTOMER_Num
CUSTOMER_NAME
Customer_Location
我想要它,所以当我输入Customer_NUM(这与CUSTOMER_ID相同)时,我可以运行一个脚本并获取客户名称并使用相应的名称填充该字段。
我可能会将其创建为存储过程。
我可以用基本格式编写脚本吗?
解决:
update ORDERS
set ORDERS.CUSTOMER_NAME = Customers.CUSTOMER_NAME
from orders
join Customers
on ORDERS.CUSTOMER_ID = Customers.CUSTOMER_Num
答案 0 :(得分:2)
如果要更新某些exisitng行的字段,则必须使用UPDATE
语句。想要创建新行时的INSERT
语句。
我尝试用一些例子更好地解释:
您想要添加新客户
INSERT INTO customer (field_name) VALUES (values_to_put_in_fields)
我们可以在您的INSERT中假设您不知道客户的文档编号,但是您知道一段时间后。
因此,您可以用这种方式编写UPDATE
语句
UPDATE customer
SET document_no = 'mydoc'
WHERE customer_id = 'id_of_your_customer'
如果可以告诉我,如果我不明白你的回答也告诉我;)
答案 1 :(得分:1)
如果您获得更高级,则会出现MERGE
声明:http://msdn.microsoft.com/en-us/library/bb510625.aspx
如果你不是一个sql super-wiz,那么坚持使用INSERT
和UPDATE
...我通常会这样做。