【问题标题】:SQL: How do I use parameter for TOP like in SELECT TOP @amount? [duplicate]SQL:如何在 SELECT TOP @amount 中使用 TOP 参数? [复制]
【发布时间】:2009-12-20 18:06:17
【问题描述】:

使用 vs2008 查询生成器,我正在尝试进行一个获取“TOP”命令参数的查询,然后我遇到了一个错误“顶部表达式错误”

作品:

SELECT TOP 5 * FROM dbo.SomeTable
WHERE SomeColumn = SomeValue

不起作用:

SELECT TOP @param1 * FROM dbo.SomeTable
WHERE SomeColumn = SomeValue

alt text http://www.freeimagehosting.net/uploads/f9b9354577.jpg

【问题讨论】:

    标签: sql sql-server tsql parameters


    【解决方案1】:

    需要括号,并且仅适用于 SQL Server 2005 及更高版本

    SELECT TOP (@param1) ...
    

    【讨论】:

      【解决方案2】:

      对于旧版本的 SQL Server,您可以使用:

      SET ROWCOUNT @NumberOfResults
      SELECT * FROM MyTable
      SET ROWCOUNT 0
      

      However, you should not use this technique on 2008:

      使用 SET ROWCOUNT 不会影响 DELETE、INSERT 和 UPDATE 语句 在 SQL Server 的下一版本中 (2008 年)。不要将 SET ROWCOUNT 与 DELETE、INSERT 和 UPDATE 语句 在新的开发工作中,并计划 修改当前使用的应用程序 它。此外,对于 DELETE、INSERT 和 当前使用的 UPDATE 语句 SET ROWCOUNT,我们建议您 重写它们以使用 TOP 语法。 有关详细信息,请参阅删除 (Transact-SQL)、插入 (Transact-SQL)、 或 UPDATE (Transact-SQL)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-25
        • 1970-01-01
        • 2020-02-03
        • 2018-12-28
        • 1970-01-01
        相关资源
        最近更新 更多