如何在 SQL Server 中的 SELECT TOP 中 使用 变量

来源:互联网 发布:水利设计软件 编辑:程序博客网 时间:2024/05/17 06:02

数据库环境: Sql Server 2005

        查询语句类似:

       SELECT TOP XX * FROM tbl ...

       以前使用时,这种查询一般都是在程序中拼好Sql语句再执行,这次打算在存储过程中,用参数传入查询行数,使用类似:

        SELECT TOP @queryCount * FROM tbl

         可编译时报错:

消息 102,级别 15,状态 1,第 3 行
'@queryCount' 附近有语法错误。

        郁闷死,在百度上搜搜,发现不少类似问题,而解决的方法,一般有两种:

        1、在查询前,设置 SET ROWCOUNT @queryCount,查询接受后,重新设置成0

        2、在存储过程拼Sql,然后 Exec

        不甘心啊,仔细阅读SqlServer帮助文档,从 SELECT 语句,按照帮助连接,又查到 TOP 帮助,连接地址为:

ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.zh-CHS/tsqlref9/html/da983c0a-06c5-4cf8-a6a4-7f9d66f34f2c.htm

语法

  

     TOP (expression) [PERCENT]
     [ WITH TIES ]
]

      注意:expression 是在一对圆括号内的,而之后又有如下的例子

在 TOP 中使用变量

以下示例使用变量获得 AdventureWorks 数据库的 dbo.Employee 表中列出的前 10 个雇员。

  复制代码 
USE AdventureWorks ;
GO
DECLARE @p AS int
SET @p='10'
SELECT TOP(@p)*
FROM HumanResources.Employee;
GO

0 0