-- =============================================
-- Author: 蜘蛛王
-- Create date: 2015-10-29
-- Description: 可搜索 可排序 可分页存储过程 适用于sql2008以上
-- (非常重要,请认真使用)
-- ============================================= create PROCEDURE dbo.list
(
@table varchar(1000),--表名或视图表 (必须)
@orderby varchar(1000),--排序字段 (必须)
@fields varchar(max)='*',--欲选择字段列表 (可选)
@pageindex int=1,--页号,从1开始 (可选)
@pagesize int=20,--页尺寸 (可选)
@where nvarchar(max) = N'',--条件 (可选)
@IsCount bit = 1 -- 返回记录总数, 非 0 值则返回 (可选)
)
AS
BEGIN
SET NOCOUNT ON
declare @sqlstr nvarchar(max)
set @sqlstr=''
set @orderby = ' order by ' + @orderby
if @where<>N''
set @where = ' Where ' + @where --对第一页可以直接用top
if @pageindex=1
begin
set @sqlstr = 'select top ' + CONVERT(varchar(10),@pagesize) + ' ' + @fields + ' from ' + @table + @where + @orderby
end
else
begin
set @sqlstr = 'with temptbl as ('
+ ' SELECT ROW_NUMBER() OVER ('+ @orderby +') AS Row, '
+ @fields + ' from ' + @table + @where
+ ') SELECT '+ @fields + ' FROM temptbl where Row between ' + CONVERT(varchar(10),(@pageindex-1)*@pagesize+1) + ' and ' + CONVERT(varchar(10),(@pageindex-1)*@pagesize+@pagesize) end
if @IsCount!=0
set @sqlstr = @sqlstr + ';select count(1) from ' + @table + @where
execute(@sqlstr)
END
 
--测试代码
exec list @table='dl_QQ',@orderby='iid desc',@IsCount=1, @pageindex =2, @fields='iid,qq', @where=' iid <30 '
exec list @table='dl_QQ',@orderby='iid desc',@IsCount=1, @pageindex =1, @fields='iid,qq', @where=' iid <30 '
/******************************
* 函数名:RandDateTime
* 作用:返回两个时间范围内的一个随机时间
* Author:
* Date: 2015-11-13
* 调用:select dbo.RandDateTime(NEWID(),'2015-11-03 11:24:17','2015-11-03 11:25:17')
*******************************/
go
--创建函数
alter Function RandDateTime
(
@newID uniqueidentifier, -- 用 NEWID()
@date_from DateTime, --开始时间
@date_to DateTime --结束时间
)
Returns DateTime
As
Begin Return CAST(CAST(@date_from AS DECIMAL(18,8)) + -----开始时间 加上一个以天为整的数值作为新的日期
(
ABS(
CAST(
CAST( @newID AS Binary(17) )--把生成的一个二进制随机数转化为整数 并取其绝对值
AS INT
)
) / 10000.0
% ----防止随机数过大 取其对开始结束时间差的模
CAST(
(@date_to - @date_from) -----获取时间差 并转换成整型
AS DECIMAL(18,8)
)
) AS DATETIME)
End

1、SQL可搜索可排序可分页存储过程, 2、范围内的随机时间 适用于sql 2008以上的更多相关文章

  1. sql server 带输入输出参数的分页存储过程(效率最高)

    create procedure proc_page_withtopmax( @pageIndex int,--页索引 @pageSize int,--每页显示数 @pageCount int out ...

  2. 在ASP.NET MVC5中实现具有服务器端过滤、排序和分页的GridView

    背景 在前一篇文章<[初学者指南]在ASP.NET MVC 5中创建GridView>中,我们学习了如何在 ASP.NET MVC 中实现 GridView,类似于 ASP.NET web ...

  3. [转]在ASP.NET MVC5中实现具有服务器端过滤、排序和分页的GridView

    本文转自:http://www.cnblogs.com/powertoolsteam/p/MVC5_GridView_2.html 背景 在前一篇文章<[初学者指南]在ASP.NET MVC 5 ...

  4. [转]关于SQL分页存储过程的分析

    [转]关于SQL分页存储过程的分析 建立一个 Web 应用,分页浏览功能必不可少.这个问题是数据库处理中十分常见的问题.经典的数据分页方法是:ADO 纪录集分页法,也就是利用ADO自带的分页功能(利用 ...

  5. 在ASP.NET MVC中使用Boostrap实现产品的展示、查询、排序、分页

    在产品展示中,通常涉及产品的展示方式.查询.排序.分页,本篇就在ASP.NET MVC下,使用Boostrap来实现. 源码放在了GitHub: https://github.com/darrenji ...

  6. 动软.NET 分页存储过程UP_GetRecordByPage

    1, ------------------------------------ --用途:支持任意排序的分页存储过程 --说明: ----------------------------------- ...

  7. asp.net sql 分页,,优化 排序 及分页,

    调用代码: <%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix ...

  8. [原创]java WEB学习笔记92:Hibernate学习之路-- -QBC 检索和本地 SQL 检索:基本的QBC 查询,带 AND 和 OR 的QBC,统计查询,排序,分页

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  9. sql server 2000 单主键高效分页存储过程 (支持多字段排序)

    sql server 2000 单主键高效分页存储过程 (支持多字段排序) Create PROC P_viewPage             /*              nzperfect [ ...

随机推荐

  1. 【笔记】ListView的使用

    1.0 ListView三要素 1.0.1  创建基本步骤 1.在布局文件中创建一个ListView组件,并在Activity中声明这个组件. 2.在Activity中,创建一个合适的Adapter. ...

  2. visualssh 是一个可视化的ssh客户端

    这两个周末写了visualssh,一个可视化的ssh客户端.里面集成了putty的功能,通过ssh协议与Linux server通讯. 以后可以针对不同的应用编写相关插件,便于管理Linux服务器上的 ...

  3. ARM9的中断控制器

    简要复习一下ARM9中断控制器的控制过程: 1.首先能识别触发的中断(对应中断源必须打开,然后查询当前中断状态寄存器),硬件会操控PC跳到中断向量入口(IRQ_HANDLE,硬件控制的只要是IRQ中断 ...

  4. window.onload、DOMContentLoaded和$(document).ready()

    <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="C ...

  5. win7右键在目录当前打开命令cmd窗口

    一般打开方式Windows+R 打开运行窗口输入CMD 在当前目录下打开CMD 按住Shift键+点击鼠标右键,会出现一个选项“在此处打开命令窗口”在右键快捷方式里.

  6. 通过样式class 判断多个checkbox redio 是否都选中

    var count = "${count}"; for(var i=1;i<=count;i++){ var flag = false; if($("input[c ...

  7. CSS书写规范

    一.CSS书写顺序 1.位置属性(position,top,right,z-index,display,float等) 2.大小(width,height,padding,margin) 3.文字系列 ...

  8. http学习 1-3 chapter3-报文

    如果说HTTP是因特网的信使,那么HTTP报文就是它用来搬东西的包裹了. 报文是如何流动的. HTTP报文的三个组成部分(起始行.首部和实体的主体部分) 请求和响应报文之间的区别 请求报文支持的各种功 ...

  9. yii accessRules用法

    访问控制过滤器(Access Control Filter)访问控制过滤器是检查当前用户是否能执行访问的controller action的初步授权模式. 这种授权模式基于用户名,客户IP地址和访问类 ...

  10. Lua string库整理

    string库提供了字符串处理的通用函数. 例如字符串查找.子串.模式匹配等. 当在 Lua 中对字符串做索引时,第一个字符从 1 开始计算(而不是 C 里的 0 ). 索引可以是负数,它指从字符串末 ...