[英]error in EXEC Sp_executesql
I wrote this query 我写了这个查询
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
My problem in this line 我这行的问题
WHERE [Id] IN (SELECT TOP 15 Id From Base WHERE RN > ((@Count-1)*15) ORDER BY Id DESC)
Base
is not recognized. 无法识别
Base
。
How can I fix this error? 如何解决此错误?
I think this what you are trying to achieve 我认为这是您想要实现的目标
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.