`

SQL2005三种存储过程分页方式以及插入10万条数据

    博客分类:
  • Sql
Go 
阅读更多
     if exists (select * from sys.databases where name='test')
   drop database test
   create database test
go
    use test
   go
     /----创建  员工信息表(employeeInfo)

    if exists(select * from sys.tables where name='employeeInfo' )
  drop table employeeInfo
  create table employeeInfo(
      empId int identity(1,1) primary key,
      empname varchar(50),
      sex nvarchar(2),
      age int 
)
go
select * from employeeInfo
go
/---创建十万条测试数据  插入数据存储过程
    if exists(select * from sys.procedures where name='proDataInsertIntoEmployeeInfo')

  drop procedure proDataInsertIntoEmployeeInfo
go
  create procedure proDataInsertIntoEmployeeInfo
  as
  declare @dataCount int ,@i int
  select @dataCount=100000,@i=1
  while(@i<=@dataCount)
   begin
  insert into employeeInfo values((char (rand()*100))+(char (rand()*100))+(char (rand()*100)),'男',rand()*50)
   set @i=@i+1
  end
go
execute  proDataInsertIntoEmployeeInfo
  
      /--产生随字符
select (char (rand()*100))+(char (rand()*100))+(char (rand()*100))
/--产生随即1-50的数字
select rand()*50
select * from employeeInfo
go

  /--创建得到 员工信息表总记录数存储过程selectEmployeeInfoCount
  if exists(select * from sys.procedures where name='selectEmployeeInfoCount')
drop  procedure selectEmployeeInfoCount
go
  create procedure selectEmployeeInfoCount
  as
   declare @EmployeeCount int
   select @EmployeeCount=count(*) from employeeInfo
   return @EmployeeCount
go
execute selectEmployeeInfoCount


   

/---创建员工信息分页  存储过程 (not  in ) 存储过程

   if exists(select * from sys.procedures where name='EmployeeInfoPage')
drop procedure EmployeeInfoPage
go
   create procedure EmployeeInfoPage
   @startRowIndex  int=1 ,
   @pageSize int=10
  as
 
    select top (@pageSize) * from employeeInfo where empId not in
   (select top (@pageSize*(@startRowIndex-1)) empId from employeeInfo  order by empId )
  order by empId
go
 
  execute EmployeeInfoPage  10000,10
go
   /--创建 排序储存过程
    if exists(select * from sys.procedures where name='EmployeeInfoPageByDesc')
  drop  procedure EmployeeInfoPageByDesc

  /--创建存储过程(EmployeeInfoPageByDesc)
create procedure EmployeeInfoPageByDesc
     @startRowIndex  int=1 ,
     @pageSize int=10
     as
     declare   @recordCount int
     execute @recordCount=selectEmployeeInfoCount
     select top(@pageSize) * from
    (select top (@recordCount-(@startRowIndex-1)*@pageSize) * from employeeInfo order by empId desc)
     emp
     order by empId asc
go




  
  


 
0
0
分享到:
评论

相关推荐

    经典SQL语句大全

    13、说明:一条sql 语句搞定数据库分页 select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段 具体实现: ...

    sql经典语句一部分

    13、说明:一条sql 语句搞定数据库分页 select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段 具体实现: ...

    数据库操作语句大全(sql)

    13、说明:一条sql 语句搞定数据库分页 select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段 具体实现: ...

    C#.net_经典编程例子400个

    329 实例238 列出系统中的打印机 330 7.12 其他 332 实例239 两种信息发送方式 332 实例240 功能快捷键 336 第8章 注册表 339 8.1 操作注册表 340 实例241 怎样存取注册表信息 ...

    C#程序开发范例宝典(第2版).part13

    实例012 带进度条的状态栏 10 实例013 状态栏中加入图标 11 1.4 导航菜单界面 11 实例014 OutLook界面 11 实例015 带导航菜单的主界面 12 实例016 图形化的导航界面 14 1.5 特色程序界面 15 实例017 隐藏式...

    C#程序开发范例宝典(第2版).part08

    实例012 带进度条的状态栏 10 实例013 状态栏中加入图标 11 1.4 导航菜单界面 11 实例014 OutLook界面 11 实例015 带导航菜单的主界面 12 实例016 图形化的导航界面 14 1.5 特色程序界面 15 实例017 隐藏式...

    C#程序开发范例宝典(第2版).part02

    实例012 带进度条的状态栏 10 实例013 状态栏中加入图标 11 1.4 导航菜单界面 11 实例014 OutLook界面 11 实例015 带导航菜单的主界面 12 实例016 图形化的导航界面 14 1.5 特色程序界面 15 实例017 隐藏式...

    C#程序开发范例宝典(第2版).part12

    实例012 带进度条的状态栏 10 实例013 状态栏中加入图标 11 1.4 导航菜单界面 11 实例014 OutLook界面 11 实例015 带导航菜单的主界面 12 实例016 图形化的导航界面 14 1.5 特色程序界面 15 实例017 隐藏式...

Global site tag (gtag.js) - Google Analytics