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