为了账号安全,请及时绑定邮箱和手机立即绑定

一个 简单的存储过程我找不到错误在哪

一个 简单的存储过程我找不到错误在哪

噜噜哒 2018-12-06 20:24:35
  存储过程 set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgo-- =============================================-- Author: 小黑-- Create date: 2011-2-17-- Description: 根据ID获取上一页下一页的存储过程-- =============================================ALTER PROCEDURE [dbo].[proc_PrevorNextpro]@proid int,--表id@str nvarchar(20),--prev 则是上一件 next则是下一件@tblName nvarchar(20)--表名ASBEGIN declare @rowid int select @rowid=rowid from( select ROW_NUMBER() over (order by createdate desc) as rowid,* from @tblName )as a where a.id=@proidif @str='prev'set @rowid=@rowid-1elseset @rowid=@rowid+1select * from( select ROW_NUMBER() over (order by createdate desc) as rowid,* from @tblName )as a where a.rowid=@rowidEND     总是提示消息  1087,级别 15,状态 2,过程 proc_PrevorNextpro,第 16 行必须声明表变量 "@tblName"。消息 1087,级别 15,状态 2,过程 proc_PrevorNextpro,第 24 行必须声明表变量 "@tblName"。
查看完整描述

5 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

感谢
查看完整回答
反对 回复 2019-01-07
?
largeQ

TA贡献2039条经验 获得超7个赞

select ROW_NUMBER() over (order by createdate desc) as rowid,* from @tblName

这样是不对的。表名称是不可以为变量的。

你应该是用拼接sql的方式来完成你的逻辑。 楼上很全了

查看完整回答
反对 回复 2019-01-07
?
慕神8447489

TA贡献1780条经验 获得超1个赞

感谢
查看完整回答
反对 回复 2019-01-07
  • 5 回答
  • 0 关注
  • 778 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信