奇了怪了,哪里来的语法错误?变量替换成值就正常!!!

sky0120 2010-12-21 05:43:05
exec sp_executesql N'select top @param0 * from ChannelInfo where id not in (select top ( @param0 *( @param1 -1)) id from ChannelInfo order by id) and CHName like @param2 order by id',N'@param0 bigint,@param1 bigint,@param2
nvarchar(2)',@param0=20,@param1=1,@param2=N'%%'


查询分析器中运行报错:
消息 102,级别 15,状态 1,第 2 行
'@param0' 附近有语法错误。
消息 156,级别 15,状态 1,第 2 行
关键字 'order' 附近有语法错误。


替换成实际值:
select top 20 * from ChannelInfo where id not in (select top ( 20 *( 2 -1)) id from ChannelInfo
order by id) and CHName like '%%' order by id

运行成功!!

求指教!!!!多谢!!!
...全文
89 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangyg_bc 2011-11-10
  • 打赏
  • 举报
回复
我加了括号() 还是有问题啊
sky0120 2010-12-21
  • 打赏
  • 举报
回复
多谢!!!结贴!!!
rucypli 2010-12-21
  • 打赏
  • 举报
回复
@param0 加括号
exec sp_executesql N'select top (@param0) * fro
lixiaocai123 2010-12-21
  • 打赏
  • 举报
回复
你的字符串拼接就有问题
sky0120 2010-12-21
  • 打赏
  • 举报
回复
楼上朋友 什么意思 望详解
王向飞 2010-12-21
  • 打赏
  • 举报
回复
select TOP(@n) *
--2008

22,301

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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