询问一SQL语句,高手请进

postren 2005-06-25 02:19:33
为 何 如 下 代 码 有 语 法 错 误:
declare @i int
set @i = 1
select top @i from Table1

另外:如 果 当 前 登 陆 用 户 没 有 对 Table1 的 select权 限,只 有 对 存 储 过 程 的 执 行 权 限 , 因 此 存 储 过 程 中 不 能 用 如 下 代 码 实 现 ( 提 示 没 有 对 Table1 的 select 权 限 )
declare @i int
declare @s varchar(100)
set @int = 1
set @s = 'select top ' + convert(varchar(5), @i) + ' from Table1'
exec(@s)

但 如 果 在 该 存 储 过 程 中 用
select top 1 from Table1
则 能 正 常 运 行 , 没 有 提 示 权 限 不 够 的 问 题

问: 如 何 能 在 存 储 过 程 中 根 据 传 入 的 一 个 整 形 数 量 来 获 得 数 据 的 top 条 数 ?( 前 提 是 当 前 登 陆 用 户 只 有 对 该 存 储 过 程 的 执 行 权 限 , 而 没 有 对 需 要 操 作 的 表 的 select 权 限 与 update 等 权 限 )

如 果 分 不 够 可 以 再 加 ,谢 谢
...全文
446 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
postren 2005-06-26
  • 打赏
  • 举报
回复
呵呵,怎么忘了这个方法啊,set rowcount @i, 高手就是高手
zjcxc 元老 2005-06-26
  • 打赏
  • 举报
回复
--sql 2005可以这样
declare @i int
set @i = 1
select top (@i) * from Table1
zjcxc 元老 2005-06-26
  • 打赏
  • 举报
回复
declare @i int
set @i = 1
set rowcount @i
select * from Table1
set rowcount 0
postren 2005-06-26
  • 打赏
  • 举报
回复
等待高手
postren 2005-06-25
  • 打赏
  • 举报
回复
没人知道吗?
postren 2005-06-25
  • 打赏
  • 举报
回复
难道会是SQL Server 2000的bug还是...

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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