sql - 所需的结果行数作为存储过程中的参数

标签 sql sql-server stored-procedures parameters

我想让我的消费者指定他们希望在存储过程中返回的行数。我想模仿这种行为:

SELECT  TOP 100 AccountId ,
        AccountName
FROM    dbo.Account

但是以这种方式:

DECLARE @resultCount INT = 100;

SELECT  TOP @resultCount AccountId ,
        AccountName
FROM    dbo.Account

当然,第二个版本会导致“@resultCount 附近的语法不正确”错误。有没有一种方法可以在不分解为连接 SQL 字符串和使用 EXEC 的情况下执行此操作?我发现这不是很容易维护。

最佳答案

@resultCount 周围添加括号 ( ) :

DECLARE @resultCount INT = 100;

SELECT  TOP (@resultCount) AccountId ,
        AccountName
FROM    dbo.Account

关于sql - 所需的结果行数作为存储过程中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15100573/

相关文章:

sql - 选择用户下次登录时间

python - 如何打印动态sql约束错误语句

c# - 处理用作存储过程参数的列表的最佳方法

mysql - 如何在不更新 MySQL 中的整个值的情况下更新特定值

sql - 在 MS SQL Server 中使用 containstable 时搜索与号 (&)

sql - 如何使用存储过程获取所有 SSRS 订阅数据?

SQL Server 使用 LIKE 在名字列中搜索 ""个字符

oracle - 每次 EXECUTE IMMEDIATE 后都需要 COMMIT 吗?

java - H2:如何创建不带参数的存储过程

sql - 如何检查WITH语句是否为空