批量更新

A,B表通过key关联的批量更新数据方法:
批量修改:{
update A
set A.qcye=B.qcye
from B
where A.kmdm=B.kmdm
and   A.fmonth=B.fmonth
and   A.fmonth=0
}

  更新数据一般通过应用程序来完成,使用UPDATE语句更新记录是数据库管理员维护数据的最要手段。UPDATE语句用于更新记录的列的值,它的语法比较复杂,本节将详细讲述该语句的使用。

UPDATE:修改表中的数据行
部分语法:
    UPDATE
    {  table_name | view_name }
    SET 
    {  column_name={ expression | DEFAULT | NULL}
       |  @variable=expression
       |  @ variable=column=expression  } [,…n]
    { [ FROM { <table_source>} [,…n]
                [WHERE <search_condition>]  }
使用 WHERE 子句指出哪些行要更新
SET 关键字指定新值
输入值的类型必须与所定义的数据类型一致
SQL Server 不会更新违反任何完整性约束的行
每次只能修改一个表中的数据
可以同时把一个或多个列、变量放在一个表达式中    

USE northwind

UPDATE products SET unitprice = (unitprice * 1.1)

GO

UPDATE 语句是如何工作的

Ÿ从不对同一行更新两次
Ÿ在不明确的字段名前要使用表名作为前缀
用连接查询指定要更新的行
Ÿ使用 FROM 子句
使用子查询指定要更新的行
Ÿ如果子查询没返回一个值,则必须在子查询中引入 IN、EXISTS、ANY 或 ALL 关键字
Ÿ建议使用有聚集函数的相关子查询
例子一
UPDATE products
 SET unitprice=unitprice+2
 FROM products
 INNER JOIN suppliers
  ON products.supplierid=suppliers.supplierid
 WHERE suppliers.country=‘USA’
GO  

  

例子二
SELECT products
 SET unitprice=unitprice+2
 WHERE supplierid IN(
                      SELECT supplierid
                      FROM suppliers
                      WHERE country=‘USA’
                     )
GO

 

例子三
UPDATE products
 SET todatesales=(
                  select sum(quantity)
                  from [order details] as od
                  where products.productid=od.productid
                  )
GO  

  

例子四
UPDATE TOP(2) TABLE2
SET Pwd = 'TOP2' 
GO  

  

原文地址:https://www.cnblogs.com/xinyaoxp/p/3303289.html