首页 > 解决方案 > 更新 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”附近的语法不正确

我必须一次更新成千上万行,我该怎么做?

标签: sqlsql-server-2005

解决方案


您可能必须从 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;

推荐阅读