应用场景之一:
根据A表的某字段更新B表对应得字段,例如UserInfo表中存储了用户得ID,AccountName,而UserOrder表中存储了一些订单信息外,还存储了对应得用户名以及用户ID。现在UserInfo用户名发生改变,要去更新UserOrder表中的AccountName
当然了,作为一个程序员,是不可能直接去操作数据库。但这里我们只谈数据库的实现。 我一般这么解决:
update UserOrder
set Order.AccountName = UserInfo.AccountName
from UserInfo
where Order.UserId = UserInfo.UserId
让我感到奇怪得是上面这句话如果用 as 给表命名别名会报as附近语法错误,大概是Update后面的表是指定的,无法as别名。
另一种方式:
update UserOrder
set UserOrder.AccountName = (select top 1 AccountName from UserIfno where UserIfno.UserId = UserOrder.UserId)
where UserOrder.UserId in ("用户ID列表")