中易网

sql存储过程里top后面可以跟参数吗?

答案:3  悬赏:0  
解决时间 2021-04-28 23:01
  • 提问者网友:夜微涼
  • 2021-04-28 00:51
CREATE PROCEDURE dbo.procTopicListByBoardIdSelect
@boardId INT,
@rowBegin INT
AS
BEGIN
SELECT TOP 20 *
FROM dbo.TBL_TOPIC
WHERe boardId=@boardId AND topicId NOT IN ( SELECt TOP @rowBegin topicId
FROM dbo.TBL_TOPIC
WHERe boardId=@boardId
ORDER BY publishTime DESC)
ORDER BY publishTime DESC
END
GO

TOP @rowBegin 。。。。会报错,怎么解决?根据@rowBegin传过来的参数查询top数据。

那怎么在java里调用?
最佳答案
  • 二级知识专家网友:荒唐后生
  • 2021-04-28 01:22
可以,要用括号括起来
TOP (@rowBegin)
全部回答
  • 1楼网友:温柔刺客
  • 2021-04-28 03:26
直接跟参数的形式,从 SQL 2005 才开始支持。 SQL 2000 是不支持的。 如果一定要使用的话,只能用 EXEC(@SQL)的方式执行
  • 2楼网友:爱情是怎么炼成的
  • 2021-04-28 02:31
sql2005这种情况一般采取动态拼接语句的方式来实现,,, declare @str varchar(1000),@tp1 varchar(10) set @tp1=2 set @str = 'select top '+ @tp1 +' * from 表' exec(@str)试下,,,
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息