sql存储过程问题?

zengbingling 2010-07-20 11:16:43
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"。
...全文
125 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yeyucao123 2010-07-22
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 hongleidy5000 的回复:]
好些日子不写存储过程了,有点忘记了,呵呵
[/Quote]
你也过来看看,嘿嘿
yeyucao123 2010-07-21
  • 打赏
  • 举报
回复
支持楼上的写法
大Y 2010-07-21
  • 打赏
  • 举报
回复
好些日子不写存储过程了,有点忘记了,呵呵
aluogang 2010-07-20
  • 打赏
  • 举报
回复
CREATE proc [dbo].[product_PageByRowNumber]
@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
zengbingling 2010-07-20
  • 打赏
  • 举报
回复
谁能给个修改可以执行的代码
angel6709 2010-07-20
  • 打赏
  • 举报
回复
只能拼接字符串,
shiyuyao1987 2010-07-20
  • 打赏
  • 举报
回复
字符串拼接吧

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧