繁体   English   中英

EXEC Sp_executesql中的错误

[英]error in EXEC Sp_executesql

我写了这个查询

DECLARE @Base nvarchar(200) 

SET @Base = 'WITH Base AS (SELECT Id, ROW_NUMBER() OVER (ORDER BY Id DESC) RN FROM'+    QUOTENAME(@SampleWorkTbl)+')'

EXEC Sp_executesql @Base output

SELECT Top 15
    [Id]
    ,IsLock
    ,[Title]
    ,[Desc]
    ,[ImageAddress]
    ,[Time]
FROM 
    [Sorin].[dbo].[News]
WHERE 
    [Id] IN (SELECT TOP 15 Id 
             FROM Base 
             WHERE RN > ((@Count-1) * 15) 
             ORDER BY Id DESC)
ORDER BY 
    [Id] DESC

我这行的问题

WHERE [Id] IN (SELECT TOP 15 Id From Base WHERE RN > ((@Count-1)*15) ORDER BY Id DESC)

无法识别Base

如何解决此错误?

我认为这是您想要实现的目标

DECLARE @Base NVARCHAR(200)

SET @Base = 'WITH Base AS (SELECT Id, ROW_NUMBER() OVER (ORDER BY Id DESC) RN FROM'
            + Quotename(@SampleWorkTbl) + ')
    select * into ##temp from base'

EXEC Sp_executesql
  @Base

SELECT *
FROM   ##temp

SELECT TOP 15 [Id],
              IsLock,
              [Title],
              [Desc],
              [ImageAddress],
              [Time]
FROM   [Sorin].[dbo].[News]
WHERE  [Id] IN (SELECT TOP 15 Id
                FROM   ##temp
                WHERE  RN > ( ( @Count - 1 ) * 15 )
                ORDER  BY Id DESC)
ORDER  BY [Id] DESC 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM