存储过程出错

Irf*_*aza 1 sql-server asp.net

我正在尝试创建一个SP,用于在aspx页面上显示分页数据.我写了以下代码 -

Create PROCEDURE [dbo].[sp_GetAllAssignmentData_Paged] 

    @currentPage INT=1, 
    @pageSize INT=20

AS

BEGIN

    SET NOCOUNT ON;
    with AssignmentData As(
        select ROW_NUMBER() over (order by a.StockNo desc) AS [Row], 
            a.StockNo,c.ClaimNo,v.[Year],v.Make,v.Model,
            c.DOAssign,c.InsuranceComp,c.Location,c.Status
        from 
            dbo.Assignments a,
            dbo.Assignment_ClaimInfo c,
            dbo.Assignment_VehicleInfo v
        where
            (a.AssignmentID=c.AssignmentID) and
            (v.AssignmentID=c.AssignmentID)
             order by a.StockNo desc
    )
    SELECT StockNo, ClaimNo, [Year], Make, Model, DOAssign, InsuranceComp, Location, [Status]
    FROM AssignmentData
    WHERE Row between ((@currentPage - 1) * @pageSize + 1) and (@currentPage*@pageSize) END
Run Code Online (Sandbox Code Playgroud)

当我尝试创建此SP时,会生成以下错误消息 - 除非还指定了TOP或FOR XML,否则ORDER BY子句在视图,内联函数,派生表,子查询和公用表表达式中无效.

有人可以纠正我的错误吗?

感谢您分享宝贵的时间.

Dav*_*und 6

内部集合AssignmentData的排序是没有意义的,因为它是从该集合中选择将决定排序的.因此,不允许这样做.移动lline

order by a.StockNo desc
Run Code Online (Sandbox Code Playgroud)

到你最后的选择