批量更新
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