易截截图软件、单文件、免安装、纯绿色、仅160KB

sql 存储过程 分页

-- FUN:存储过程分页
-- @Table nvarchar(255), -- 表名
-- @Fields nvarchar(1000) = ' * ', -- 需要返回的列
-- @OrderField nvarchar(255), -- 排序的字段名,一般为唯一标识
-- @OrderType bit = 0, -- 设置排序类型, 非 0 值则降序
-- @PageSize int = 10, -- 每页有多少条记录
-- @PageIndex int = 1, -- 第几页
-- @Count int output, -- 返回记录总数 
-- @StrWhere nvarchar(1500) -- 查询条件 (注意: 不要加 where,初始化为1=1使得查询条件永远不为空)
----------------------------------------------------------
ALTER PROC [dbo].[PR_pages]
(
 @Table nvarchar(4000), -- 表名
 @Fields nvarchar(1000) = ' * ', -- 需要返回的列
 @OrderField nvarchar(255), -- 排序的字段名,一般为唯一标识
 @OrderType bit = 0, -- 设置排序类型, 非 0 值则降序
 @PageSize int = 10, -- 每页有多少条记录
 @PageIndex int = 1, -- 第几页
 @StrWhere nvarchar(1500), -- 查询条件 (注意: 不要加 where,初始化为1=1使得查询条件永远不为空)
 @Count int output -- 返回记录总数 
)
AS
BEGIN
 DECLARE @StrSQL nvarchar(4000)  -- 主语句
 DECLARE @StrTmp nvarchar(110) -- 临时变量
 DECLARE @StrOrder nvarchar(400) -- 排序类型
 DECLARE @SumSql nvarchar(4000) -- 记录总数
 --SET @StrWhere = ' 1=1 '
 -- 执行总数统计
 SET @SumSql = 'SELECT @Count = COUNT(0) from ' + @Table + ' WHERE 1=1 ' + @StrWhere
 EXEC sp_executesql @SumSql,N'@Count int output',@Count output -- 记录总数
 -- 如果@OrderType不是0,就执行降序
 IF @OrderType != 0
  BEGIN
   SET @StrTmp = ' <(SELECT MIN'
   SET @StrOrder = ' ORDER BY [' + @OrderField + '] DESC'
  END
  ELSE
  BEGIN
   SET @StrTmp = ' >(SELECT MAX'
   SET @StrOrder = ' ORDER BY [' + @OrderField + '] ASC'
  END
 -- 如果是第一页就执行以下代码,加快执行速度
 IF @PageIndex = 1
  BEGIN
   SET @StrSQL = 'SELECT TOP ' + STR(@Pag


相关文档:

Sql Server2005用Row_Number分页存储过程的性能实测

Sql Server2005的一个新特性便是我等了很久的Row_Number(),以前用Oracle时用rownumber写分页存储过程很方便:)
下面是我做的一个小小的测试,测试我原来在sql server2000下所用的分页存储过程与使用Row_Number()编写的存储过程在Sql Server2005上的执行效率...
数据表:
REATE TABLE [dbo].[test](
[UserId] [int] Pri ......

关于网站SQL注入的问题,以及解决办法


最近发现我们公司的ASP.NET的代码有拼接SQL语句的习惯!这是非常危险的。以下我举例说明一下
例子1:
statement := "SELECT * from users WHERE name = '" + userName + "'; "
将用户名变量(即username)设置为:
a' or 't'='t,此时原始语句发生了变化:
SELECT * from users WHERE name = 'a' OR 't'='t';
如果这 ......

SQL位运算

SQL位运算
select 2|8       --10
select 2|8|1    --11
select 10&8    --8,包含,10=8+2
select 10&2    --2,包含,10=2+8
select 10&4    --0,不包含
select 19&16  --16,包含,19=16+2+1
s ......

SQL Server 2005中新增的功能强大的窗口函数

原文地址:http://www.cnblogs.com/changhai0605/articles/1276319.html
Oracle的请参考:http://zonghl8006.blog.163.com/blog/static/4528311520083995931317/
1.简介:
SQL Server 2005中新增的窗口函数帮助你迅速查看不同级别的聚合,通过它可以非常方便地累计总数、移动平均值、以及执行其它计算。
窗口函数功能非 ......

SQL全局变量


SQL Server 系统全局变量
@@CONNECTIONS
返回自上次启动以来连接或试图连接的次数。
@@CURSOR_ROWS
返回连接上最后打开的游标中当前存在的合格行的数量(返回被打开的游标中还未被读取的有效数据行的行数)
@@DATEFIRST
返回每周第一天的数字
@@ERROR
返回最后执行的SQL 语句的错误代码。
@@FETCH_STATUS
返 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号