mysql查询无法在mssql中运行

时间:2014-10-31 14:37:55

标签: php sql-server

此查询在mysql中运行良好,但无法在mssql中运行。为什么呢?

不要评判我,我是mssql的新手。

UPDATE cvcolumnlist
    SET columnindex=columnindex+1
    WHERE cvid=40 AND columnindex>=3
ORDER BY columnindex DESC

错误:

Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'order'.

4 个答案:

答案 0 :(得分:2)

您只需删除ORDER子句即可。 ORDER在UPDATE语句中毫无意义。

UPDATE cvcolumnlist
    SET columnindex=columnindex+1
    WHERE cvid=40 AND columnindex>=3

答案 1 :(得分:1)

UPDATE cvcolumnlist 
SET columnindex = columnindex+1 
WHERE cvid = 40 
    AND columnindex > 2 

这应该有效

答案 2 :(得分:1)

您根本不需要ORDER BY子句。这只是在SELECT来自数据库的数据时。

您可能需要注意,即使SQL是具有指定结构的语言,不同的SQL引擎也可能以不同的方式解析查询并使用不同的语法,因为语言没有定义很多SQL功能。

例如在mysql中,您可以使用LIMIT关键字来限制返回的记录数,在mssql中,您可以使用ROWNUMBER,oracle使用ROWNUM系统。

答案 3 :(得分:1)

UPDATE [cvcolumnlist]
SET [columnindex] = [columnindex] + 1
WHERE [cvid] = 40 AND [columnindex] >= 3

我不确定这是否适用。我的大多数查询都使用这样的东西。

UPDATE [database].[dbo].[cvcolumnlist]
SET [columnindex] = [columnindex] + 1
WHERE [cvid] = 40 AND [columnindex] >= 3