CREATE PROCEDURE [dbo].[usp_NewsTit_SelecTopX]
@numb int
AS
SELECT top @numb
[id],
[title],
[author],
[in_dtime],
[sign],
[cla],
[temps]
FROM [dbo].[news_tit]
ORDER BY [in_dtime]
GO
请问这段话那里错了,编译是老提示SELECT top @numb错了
...全文
693打赏收藏
sp问题
CREATE PROCEDURE [dbo].[usp_NewsTit_SelecTopX] @numb int AS SELECT top @numb [id], [title], [author], [in_dtime], [sign], [cla], [temps] FROM [dbo].[news_tit] ORDER BY [in_dtime] GO 请问这段话那里错了,编译是老提示SELECT top @numb错了
CREATE PROCEDURE [dbo].[usp_NewsTit_SelecTopX]
@numb int
AS
exec('SELECT top '+@numb
+'[id],
[title],
[author],
[in_dtime],
[sign],
[cla],
[temps]
FROM [dbo].[news_tit]
ORDER BY [in_dtime]')
GO
改为
CREATE PROCEDURE [dbo].[usp_NewsTit_SelecTopX]
@numb int
AS
set @@rowcount = @numb
SELECT [id],
[title],
[author],
[in_dtime],
[sign],
[cla],
[temps]
FROM [dbo].[news_tit]
ORDER BY [in_dtime]
set @@rowcount = -1
GO
因为
select top xxx 这里的xxx不接收参数
CREATE PROCEDURE [dbo].[usp_NewsTit_SelecTopX]
@numb int
AS
declare @sql nvarchar(200)
set @sql='SELECT top '
set @sql=@sql+cast(@numb as nvarchar)
set @sql=@sql+'[id],
[title],
[author],
[in_dtime],
[sign],
[cla],
[temps]
FROM [dbo].[news_tit]
ORDER BY [in_dtime]'
exec(@sql)
GO