抱歉,我上面写的代码也不对,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