【问题标题】:How do I use `@Count` variable in my query?如何在查询中使用 `@Count` 变量?
【发布时间】:2010-12-17 04:48:49
【问题描述】:

我有以下 SP,我将 count 参数传递给我的 SP 以获取特定数量的记录。

但是如何在查询中使用@Count 变量?

CREATE PROCEDURE [dbo].[GetRandomWords1]

    @Count int

AS
BEGIN

    SELECT * From Words

END

【问题讨论】:

    标签: sql sql-server sql-server-2005 tsql stored-procedures


    【解决方案1】:

    假设 SQL Server 2005+,使用TOP

    CREATE PROCEDURE [dbo].[GetRandomWords1]
      @Count int
    AS
    BEGIN
    
      SELECT TOP (@Count) * 
        FROM Words
    
    END
    

    在 SQL Server 2000 上支持 TOP,但不使用括号 - 您必须在 SQL Server 2000 上使用动态 SQL 才能获得等效功能。

    【讨论】:

    • 谢谢,我使用的是 SQL Server 2005。
    • 对于 SQL2000,您不需要使用动态 SQL。你可以这样做:“设置 RowCount @Count”。只需确保在完成“设置行数 0”后取消设置行数。这只能用于 SQL2000,因为 TOP 子句是 SQL2005 及更高版本的首选方法。
    【解决方案2】:

    试试这个:

    SELECT TOP(@Count) * From Words ORDER BY NEWID()
    

    从您的 SP 名称来看,您似乎想从 Words 表中返回随机单词。

    【讨论】:

    • 是的,确切地说,我想要随机词。我将很快发布另一个与此相关的问题。 :)
    猜你喜欢
    • 2019-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-09
    • 2019-06-08
    • 2019-04-11
    • 1970-01-01
    • 2018-02-21
    相关资源
    最近更新 更多