sql - 更新 SQL Server 2005 (v9.0.5000) 中的多行
问题描述
我目前正在使用将文件从一个地方复制到另一个地方的程序自动创建一个脚本,并且我曾经执行以下操作:
UPDATE d
SET Path = t.Path
FROM dbo.tableOperation d
JOIN (VALUES (1, 'Path 1'),
(2, 'Path 2')) t (IdRegister, Path) ON t.IdRegister = d.IdRegister
在 SQL Server 2008 R2 (v10.50.1600) 上它工作正常,但我发现一些语法在尝试在服务器上显示脚本的估计执行计划时出现问题,我必须更新数据 (9.0.50000) . 该错误特别说明
关键字“VALUES”附近的语法不正确
我必须一次更新成千上万行,我该怎么做?
解决方案
您可能必须从 2005 年切换VALUES()
到UNION ALL
(也适用于 2008 年)。但请记住,对 SQL Server 2005 的支持几年前就结束了。(我的意思是,那太老了,我忘了VALUES()
那里不存在。)是时候继续前进了吗?
UPDATE d
SET Path = t.Path
FROM dbo.tableOperation AS d
INNER JOIN
(
SELECT 1,'Path 1'
UNION ALL SELECT 2,'Path 2'
) AS t (IdRegister, Path)
ON t.IdRegister = d.IdRegister;
推荐阅读
- android - Android 设备上包含 redux-persist 状态的文件的默认位置是什么?
- javascript - 无法解决循环 Javascript 依赖项
- java - java启动需要多少内存?
- ios - watchOS 通知安静地传递
- c# - listView.Selectedindeces[0] 未处理的异常
- python - 如何在熊猫数据框中找到混合分类变量的均值?
- javascript - 使用 Oauth 标头向 Jira REST API 发出 POST 请求 - 响应 401“匿名用户”错误
- javascript - 激活 div 上的链接
- azure - Azure VM 规模集历史数据和性能
- ruby-on-rails - 在 Rails 5 中,有没有办法修改控制器中的底层参数?还是给它一个默认值?