关于sp_executesql 的问题,请帮忙解决一下啊。

李赞红 2006-07-28 12:45:31
exec sp_executesql N'select top @cout * from orders',
N'@cout int ', 5

这句话为什么执行不正确呢?如果要实现这个效果应该怎么做?
...全文
194 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
李赞红 2006-07-29
  • 打赏
  • 举报
回复
谢谢hellowork(一两清风)
李赞红 2006-07-28
  • 打赏
  • 举报
回复
TO hellowork(一两清风)
你的这种方法我知道,我就是想用sp_executesql 实现呀。
hellowork 2006-07-28
  • 打赏
  • 举报
回复
declare @cout int
set @cout = 5
exec('select top ' + cast(@cout as varchar(10)) + ' * from orders')
hellowork 2006-07-28
  • 打赏
  • 举报
回复
手误,请楼主将上面代码中"hr_wagepayment"替换成"orders".
hellowork 2006-07-28
  • 打赏
  • 举报
回复
抱歉,我上面写的代码也不对,exec()的字符串中不能使用cast()等函数.上面的代码正确的应该为:
declare @sql varchar(1000)
declare @cout int
set @cout = 5
set @sql = 'select top ' + cast(@cout as varchar(10)) + ' * from orders'
exec(@sql)
------------------------------------------------------------------------------------
如果楼主一定要使用sp_executesql的话,可以这样:
declare @sql nvarchar(2000)
set @sql = N'
declare @s varchar(1000)
set @s = ''select top '' + cast(@cout as varchar(10)) + '' * from hr_wagepayment''
exec(@s)'
exec sp_executesql @sql,N'@cout int',5

22,209

社区成员

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

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