其实这根本用不着存储过程啊,sql就可以啦!if Object_id('p_','P') is not null begin drop procedure p_ end gocreate procedure p_ @n int as begin select top @n * from table end
@n int @sql varchar(50)set @n=5 set @sql='select top '++' * from tb_tabs' exec(sql) 楼主这样试试,思路是这个样子的,代码不知道能不能执行 方法应该是没有问题的,我用过了。 就是先组合一个sql语句,再用exec来执行!
这个执行无误!CREATE PROCEDURE dbo.Msg_GetTopCountMsgByCateId ( @CateId int, @Count int ) AS declare @cun varchar(2000)set @cun='select top '+rtrim(@Count)+' Mid,Title,Uid,EndDate,Clicks from tb_Msgs where CateId='+rtrim(@CateId)+' order by Clicks ' exec(@cun) RETURNGO
你试了吗,这样可以吗 用 Row_Number()函数
if Object_id('p_','P') is not null begin drop procedure p_ end gocreate procedure p_ @n int as begin declare @sql nvarchar (1000) set @sql = 'select top '+cast(@n as nvarchar)+' * from city' exec (@sql) endexec p_ 2 go
begin
drop procedure p_
end
gocreate procedure p_
@n int
as
begin
select top @n * from table
end
@n int
@sql varchar(50)set @n=5
set @sql='select top '++' * from tb_tabs'
exec(sql)
楼主这样试试,思路是这个样子的,代码不知道能不能执行
方法应该是没有问题的,我用过了。
就是先组合一个sql语句,再用exec来执行!
(
@CateId int,
@Count int
)
AS
declare @cun varchar(2000)set @cun='select top '+rtrim(@Count)+' Mid,Title,Uid,EndDate,Clicks from tb_Msgs
where CateId='+rtrim(@CateId)+' order by Clicks '
exec(@cun)
RETURNGO
你试了吗,这样可以吗
用 Row_Number()函数
if Object_id('p_','P') is not null
begin
drop procedure p_
end
gocreate procedure p_
@n int
as
begin
declare @sql nvarchar (1000)
set @sql = 'select top '+cast(@n as nvarchar)+' * from city'
exec (@sql)
endexec p_ 2
go