我想让我的使用者指定他们想要在存储过程中返回的行数。我正在寻找模仿这种行为:

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

09-12 05:43