在T-Sql中,一般top数据不确定的情况下,都是拼sql,这样无论是效率还是可读性都不好。应该使用下面参数化Top方式:

declare @TopCount int 
set @TopCount = 100 
select top (@TopCount) * from AdventureWorks.HumanResources.Employee

如果有Like等字句,一定要拼Sql的话,也应该使用sp_executesql来执行,示例如下:

declare @TopCount int --定义top 数量 
set @TopCount = 100 
declare @Title nvarchar(100) --定义like内容 
set @Title = '%n%' 
declare @SelectSql nvarchar(max) 
set @SelectSql = ' 
select top (@TopCountPar) * 
from AdventureWorks.HumanResources.Employee 
where Title like @TitlePar' --使用参数化的top和like

--使用sp_executesql 来执行,可以提高效率 
exec sp_executesql @SelectSql, 
N'@TopCountPar as int,@TitlePar as nvarchar(100)', 
@TopCountPar = @TopCount,@TitlePar = @Title

转载自:http://www.aichengxu.com/view/834303

SQL Server 中使用参数化Top语句的更多相关文章

  1. SQL Server中UPDATE和DELETE语句结合INNER/LEFT/RIGHT/FULL JOIN的用法

    在SQL Server中,UPDATE和DELETE语句是可以结合INNER/LEFT/RIGHT/FULL JOIN来使用的. 我们首先在数据库中新建两张表: [T_A] CREATE TABLE ...

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

    语法   [ TOP (expression) [PERCENT] [ WITH TIES ] ] 注意:expression 是在一对圆括号内的,而之后又有如下的例子 在 TOP 中使用变量 以下示 ...

  3. sql server中的while循环语句

    语法格式: while 条件 begin ....... end declare @num begin update SDetail end

  4. SQL Server中TOP子句可能导致的问题以及解决办法

    简介      在SQL Server中,针对复杂查询使用TOP子句可能会出现对性能的影响,这种影响可能是好的影响,也可能是坏的影响,针对不同的情况有不同的可能性.      关系数据库中SQL语句只 ...

  5. SQL SERVER中查询某个表或某个索引是否存在

    查询某个表是否存在: 在实际应用中可能需要删除某个表,在删除之前最好先判断一下此表是否存在,以防止返回错误信息.在SQL SERVER中可通过以下语句实现: IF OBJECT_ID(N'表名称', ...

  6. SQL Server中语句的自动参数化

    原文:SQL Server中语句的自动参数化 use master go if exists(select * from sys.databases where name = 'test') drop ...

  7. SQL Server中的SQL语句优化与效率问题

    很多人不知道SQL语句在SQL SERVER中是如何执行的,他们担心自己所写的SQL语句会被SQL SERVER误解.比如: select * from table1 where name='zhan ...

  8. SQL Server中怎么查看每个数据库的日志大小,以及怎么确定数据库的日志文件,怎么用语句收缩日志文件

    一,找到每个数据库的日志文件大小 SQL Server:查看SQL日志文件大小命令:dbcc sqlperf(logspace) DBA 日常管理工作中,很重要一项工作就是监视数据库文件大小,及日志文 ...

  9. SQL Server中的SQL语句优化与效率

    很多人不知道SQL语句在SQL SERVER中是如何执行的,他们担心自己所写的SQL语句会被SQL SERVER误解.比如: select * from table1 where name='zhan ...

随机推荐

  1. Hibernate(二)——POJO对象的操作

    POJO对象其实就是我们的实体,这篇博客总结一下框架对POJO对象对应数据库主键的生成策略,和一些对POJO对象的简单增删改查的操作.  一,Hibernate框架中主键的生成策略有三种方式: 1,数 ...

  2. Max Sum of Max-K-sub-sequence(单调队列)

    Max Sum of Max-K-sub-sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ...

  3. 2014 BDTC 參会有感

    中国大数据技术大会(Big Data Technology Conference,BDTC)是眼下国内最具影响.规模最大的大数据领域的技术盛会. 大会的前身是Hadoop中国云计算大会(Hadoop ...

  4. [Immutable.js] Working with Subsets of an Immutable.js Map()

    Immutable.js offers methods to break immutable structures into subsets much like Array--for instance ...

  5. 显示器 RUIGE瑞鸽高清显示器TL-S1700HD

    版权声明:本文博客琅邪工作室原创文章,博客,未经同意不得转载.

  6. qt超强精美绘图控件 - QCustomPlot一览 及 安装使用教程

    1.概述 QCustomPlot 是一个超强超小巧的qt绘图类,非常漂亮,非常易用,只需要加入一个qcustomplot.h和qcustomplot.cpp文件即可使用,远比qwt方便和漂亮,可以自己 ...

  7. Android--------Java接口回调

    >###回调说明 回调说明:         1.class A,class B         2.class A 实现接口callback         3.class B拥有一个参数为c ...

  8. android 中使用缓存加载数据

    最近app快完工了,但是很多列表加载,新闻咨询等数据一直从网络请求,速度很慢,影响用户体验,所以寻思用缓存来加载一些更新要求不太高的数据 废话不多说,上代码 欢迎转载,但请保留文章原始出处:)  博客 ...

  9. ORA-14450

    ORA-14450 attempt to access a transactional temp table already in use Cause: An attempt was made to ...

  10. shell参数

    shell获取当前执行脚本的路径 filepath=$(cd "$(dirname "$0")"; pwd) 脚本文件的绝对路径存在了环境变量filepath中 ...