【发布时间】:2014-03-24 16:33:06
【问题描述】:
我在 sql server 数据库中有如下关系:
假设我想对关系进行一些修改。我想删除 CPU_TYPE 表并在计算机表中添加一列“cpu”。
现在我想使用sql server中的'with'子句查询从两个表连接的数据,并执行update语句来更新计算机表。
这个sql server查询:
SELECT COMPUTER.compID, COMPUTER.serialNo, COMPUTER.cpuId,
CPU_TYPE.name, CPU_TYPE.cpuSpeed, COMPUTER.cpu
FROM COMPUTER LEFT OUTER JOIN
CPU_TYPE ON COMPUTER.cpuId = CPU_TYPE.cpuId
结果如下:
现在我将使用 'with' 子句创建一个数据集,如下所示:
with ds as
(
SELECT COMPUTER.compID, COMPUTER.serialNo, COMPUTER.cpuId,
CPU_TYPE.name, CPU_TYPE.cpuSpeed, COMPUTER.cpu
FROM COMPUTER LEFT OUTER JOIN
CPU_TYPE ON COMPUTER.cpuId = CPU_TYPE.cpuId
)
update ds set cpu = name +', '+ cpuSpeed;
结果如下:
查询执行成功但问题是COMPUTER表没有改变! 如何解决这个问题?
【问题讨论】:
标签: sql sql-server tsql common-table-expression