首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >您是否能够将“TOP”数字作为参数传递给存储过程?

您是否能够将“TOP”数字作为参数传递给存储过程?
EN

Stack Overflow用户
提问于 2012-01-06 22:05:43
回答 1查看 16K关注 0票数 23

可能重复:

SQL Server - use a parameter to select the top X of the result set

我在存储过程中的查询类似于:

代码语言:javascript
复制
select top 9 from my_table;

我想编辑存储过程以从参数动态生成限制,然而,这似乎不起作用:

代码语言:javascript
复制
ALTER PROCEDURE [dbo].[my_stored_procedure]
   @n INT(2)
AS
BEGIN

SELECT TOP @n from my_table;

这可行吗?或者我必须做一些类似这样的事情:

代码语言:javascript
复制
@n int(2),
@sql varchar(30)

@sql = 'select top ' + @n '* from my table';
exec(@sql);

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-06 22:12:32

您必须将参数括在括号中,如下所示:

代码语言:javascript
复制
DECLARE @QQ INT = 10

SELECT  TOP (@QQ)
        *

FROM    Your_Table
票数 56
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8759030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档