CREATE proc [dbo].[product_PageByRowNumber]
(
@tableName nvarchar,
@pageIndex int,
@pageSize int,
@indexColumn nvarchar,
@column nvarchar(100),
@condition nvarchar(100)
)
AS
SELECT top @pageSize *
FROM (
SELECT top (@pageSize*@pageIndex) @column,ROW_NUMBER() OVER (ORDER BY @indexColumn DESC) AS RowNumber
FROM @tableName where @condition) as T
WHERE T.RowNumber>(@pageIndex-1)*@pageSize这种写法不对吗。
错误:必须声明标量变量 "@pageSize"。
(
@tableName nvarchar,
@pageIndex int,
@pageSize int,
@indexColumn nvarchar,
@column nvarchar(100),
@condition nvarchar(100)
)
AS
SELECT top @pageSize *
FROM (
SELECT top (@pageSize*@pageIndex) @column,ROW_NUMBER() OVER (ORDER BY @indexColumn DESC) AS RowNumber
FROM @tableName where @condition) as T
WHERE T.RowNumber>(@pageIndex-1)*@pageSize这种写法不对吗。
错误:必须声明标量变量 "@pageSize"。
@tableName nvarchar,
@pageIndex int,
@pageSize int,
@indexColumn nvarchar,
@column nvarchar(100),
@condition nvarchar(100)AS
Declare @sql nvarchar(max)set @sql='SELECT top '+ @pageSize +'* from ( SELECT top(' +@pageSize*@pageIndex+')'+@column+',ROW_NUMBER() OVER (ORDER BY'+@indexColumn+'DESC) AS RowNumber'
set @sql=@sql+'FROM'+@tableName+'where'+@condition+') as T WHERE T.RowNumber>('+@pageIndex+'-1)*@pageSize'exec sp_executesql @sql