改一下就可以了
Create Procedure GetSpecial
---@top_sp Int
As
Declare @SQL varchar(200)
Declare @top_sp varchar(200)
Set @top_sp = '49'
set @sql='Select top '
set @sql=@sql+@top_sp+' * From Special' exec @sql
GO
Create Procedure GetSpecial
---@top_sp Int
As
Declare @SQL varchar(200)
Declare @top_sp varchar(200)
Set @top_sp = '49'
set @sql='Select top '
set @sql=@sql+@top_sp+' * From Special' exec @sql
GO
exec('select top '+cast(@top_sp as varchar(10)) +' * from special')
Create Procedure GetSpecial
@top_sp Int
As
declare @sql varchar(8000)
set @sql='Select top '+cast(@top_sp as varchar)+' * From Special'
exec(@sql)GO
@top_sp Int
As
declare @sql varchar(8000)
set @sql='Select top '+convert(varchar(50),@top_sp)+' * From Special'
exec(@sql)
select @sql='select top '+convert(nvarchar(10),@top_sp) +' * from special'
exec sp_executesql @sql
---@top_sp Int
As
Declare @top_sp int
Set @top_sp = 49
exec( 'Select top '+ cast(@top_sp as varchar(10)) +' * From Special') --就是这里说语法不对呀GO
declare @top_sp int
set @top_sp=5
select @sql='select top '+convert(nvarchar(10),@top_sp) +' * from special'
exec sp_executesql @sql
我试过了,没问题
@top_sp Int
As
declare @sql varchar(8000)
set @sql='Select top '+CONVERT(varchar, @top_sp)+' * From Special'
exec(@sql)GO