【发布时间】:2018-10-30 22:15:33
【问题描述】:
我有一个带有 UPDATE 语句的存储过程,如下所示:
UPDATE [Design]
SET [IsLocked] = 0
WHERE (SELECT [d].[DesignKey]
FROM [project] AS [P]
INNER JOIN [ProjectDesign] AS [PD] ON [P].[ProjectKey] = [pd].[ProjectKey]
INNER JOIN [design] AS [d] ON [pd].[DesignKey] = [d].[DesignKey]
WHERE [P].[Name] = @ProjectName
ORDER BY [D].[DesignKey] DESC) = @DesignKey
但是当我尝试运行它时,我得到了这个错误:
ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效,除非还指定了 TOP、OFFSET 或 FOR XML。
我做错了什么?为什么我不能在子查询中使用ORDER BY?我该如何解决?
【问题讨论】:
-
子查询中的
order by子句不会有任何效果,即使它起作用了。 -
问题是你为什么要在更新的子查询中使用
ORDER BY???
标签: sql sql-server tsql