第一步:创建表

  1. declare @countInt int
  2. declare @age int
  3. set @age =20
  4. set @countInt=1
  5. while(@countInt<10000)
  6. begin
  7.  
  8. insert into student([sName],[sAge],[sAddress])values('彭'+ convert(nvarchar(30),@countInt),
  9. @age,'中国北京')
  10.  
  11. set @countInt=@countInt+1;
  12. set @age=@age+1;
  13. if(@age>=50)
  14. begin
  15. set @age=25;
  16. end
  17.  
  18. end
  19.  
  20. GO
  21. drop table student
  22. select * from student

第二步:创建存储过程

  1. ALTER PROC [dbo].[SuperPage]
  2. (
  3. /*传入参数*/
  4. @TableName nvarchar(20),
  5. @TableField nvarchar(2000), --未用
  6. @OrderBy nvarchar(200),
  7. @OrderByType int,
  8. @TableID nvarchar(200),
  9. @StrWhere nvarchar(2000), --未用
  10. @TaoltCount int,
  11. @PageSize int,
  12. @CurrPage int,
  13. @returnVal int output
  14. )
  15. AS
  16. DECLARE @ProcStrSQLCOUNT nvarchar(4000)
  17. DECLARE @ProcOrderBy nvarchar(200)
  18. DECLARE @returnCount int
  19. DECLARE @TranPageSuper nvarchar(50)
  20. IF(@OrderByType!=1)
  21. BEGIN
  22. SET @ProcOrderBy=' Order By '+@OrderBy+ ' DESC ';
  23. END
  24. ELSE
  25. BEGIN
  26. SET @ProcOrderBy=' Order By '+@OrderBy+ ' ASC ';
  27. END
  28.  
  29. SELECT @TranPageSuper='MyTransaction'
  30.  
  31. /*总条数*/
  32. SET @ProcStrSQLCOUNT = 'SELECT @returnCount=Count(1) FROM '+@TableName;
  33. BEGIN TRAN @TranPageSuper
  34. execute sp_executesql @ProcStrSQLCOUNT,N'@returnCount int out',@returnCount out
  35.  
  36. SET @returnCount=(@returnCount-1)/@PageSize+1
  37. print @returnCount
  38. exec('
  39. SELECT TOP '+@PageSize+' *
  40. FROM '+@TableName+'
  41. WHERE ('+@TableID+' NOT IN
  42. (SELECT TOP ('+@PageSize+'*'+@CurrPage+') '+@TableID+'
  43. FROM ' +@TableName + ' '+ @ProcOrderBy+')) '
  44. +@ProcOrderBy)
  45. /*页数*/
  46. SET @returnVal = @returnCount
  47. COMMIT TRAN @TranPageSuper
  48.  
  49. --ROLLBACK TRAN @TranPageSuper

第三步:执行

  1. DECLARE @return_value int,
  2. @returnVal int
  3.  
  4. SELECT @returnVal =
  5.  
  6. EXEC @return_value = [dbo].[SuperPage]
  7. @TableName = N'Student',
  8. @TableField = N'*',
  9. @OrderBy = N'sID',
  10. @OrderByType = ,
  11. @TableID = N'sID',
  12. @StrWhere = NULL,
  13. @TaoltCount = ,
  14. @PageSize = ,
  15. @CurrPage = ,
  16. @returnVal = @returnVal OUTPUT
  17.  
  18. SELECT @returnVal as N'@returnVal'
  19.  
  20. SELECT 'Return Value' = @return_value
  21.  
  22. GO

Sql Servicer 复习笔记(1) 存储过程分布的更多相关文章

  1. sql server 复习笔记1

    查询数据库是否存在: if DB_ID("testDB")is not null; 检查表是否存在: if OBJECT_ID(“textDB”,“U”) is not null ...

  2. sql server 复习笔记2

    主键约束 可以通过定义primary key 约束来定义主键, 用于强制表的实体化完整性,一个表只能有一个主键约束, 并且primary key 约束中的列不能为空值,由于primary key 约束 ...

  3. SQL基础语法笔记教程整理

    PS:本文适用SQL Server2008语法. 一.关系型数据库和SQL 实际上准确的讲,SQL是一门语言,而不是一个数据库. 什么是SQL呢?简而言之,SQL就是维护和使用关系型数据库中的的数据的 ...

  4. SQL 基础语法笔记教程整理

    最近从图书馆借了本介绍 SQL 的书,打算复习一下基本语法,记录一下笔记,整理一下思路,以备日后复习之用. PS:本文适用 SQL Server2008 语法. 首先,附一个发现的 MySQL 读书笔 ...

  5. 资料整理,SQL Server ,面试前复习笔记

    T-SQL 要掌握的知识点分类 SQL 面向数据库执行查询 SQL 从数据库取回数据 SQL 在数据库中插入新的记录 SQL 更新数据库中的数据 SQL 从数据库删除记录 SQL 创建新数据库 SQL ...

  6. SQL Server -- 回忆笔记(五):T-SQL编程,系统变量,事务,游标,触发器

    SQL Server -- 回忆笔记(五):T-SQL编程,系统变量,事务,游标,触发器 1. T-SQL编程 (1)声明变量 declare @age int (2)为变量赋值 (3)while循环 ...

  7. 斜率优化DP复习笔记

    前言 复习笔记2nd. Warning:鉴于摆渡车是普及组题目,本文的难度定位在普及+至省选-. 参照洛谷的题目难度评分(不过感觉部分有虚高,提高组建议全部掌握,普及组可以选择性阅读.) 引用部分(如 ...

  8. Java基础复习笔记系列 九 网络编程

    Java基础复习笔记系列之 网络编程 学习资料参考: 1.http://www.icoolxue.com/ 2. 1.网络编程的基础概念. TCP/IP协议:Socket编程:IP地址. 中国和美国之 ...

  9. Java基础复习笔记系列 八 多线程编程

    Java基础复习笔记系列之 多线程编程 参考地址: http://blog.csdn.net/xuweilinjijis/article/details/8878649 今天的故事,让我们从上面这个图 ...

随机推荐

  1. dg

    package excel; import java.util.Scanner; public class doExcel { public static void main(String args[ ...

  2. SecureCRT中文乱码解决已设置UTF-8

    查看服务器编码 查看linux的编码,修改为自己需要的,本文将已UTF-8为例进行说明.修改Linux服务器的配置文件:[root@iitshare ~]# vi /etc/sysconfig/i18 ...

  3. AJAX请求 $.post方法的使用

    使用jQuery的$.post方法可以以POST形式向服务器发起AJAX请求.$.post方法是jQuery的实用工具方法. $.post方法语法 $.post(url,parameters,call ...

  4. ios label上显示特殊字符 % "

    今天在label上显示一个拼接的百分比 label.text = [NSString stringWithFormater:@"%d%",i]; 结果后面的%就是报错,然后查半天也 ...

  5. jQuery Ajax传递数组到asp.net web api参数为空

    前端: var files = []; files.push({ FileName: "1.jgp", Extension: ".jgp", FileType: ...

  6. html导入css样式的方法

    在html网页中引入css样式表主要有一下四种方法 1.行内引入 <p style="width:100px;height:40px;color:red;"></ ...

  7. Spring ioc容器

    一.ioc容器 ioc (inversion of  control)即控制反转,把某一个接口选择实现类的控制权转移给Spring容器来管理.调用类对该实现类的依赖关系由ioc容器注入(DI),传统的 ...

  8. asp.net下AjaxMethod的使用方法

    使用AjaxMethod可以在客户端异步调用服务端方法,简单地说就是在JS里调用后台.cs文件里的方法, 做一些JS无法做到的操作,如查询数据库 使用AjaxMethod要满足一下几点: 1.如果还没 ...

  9. 不一样的角度 解读微信小程序

    不一样的角度 解读微信小程序 七月在夏天· 2 天前 前段时间看完了雨果奖中短篇获奖小说<北京折叠>.很有意思的是,张小龙最近也要把应用折叠到微信里,这些应用被他称为:小程序. 含着金钥匙 ...

  10. row_number和partition by分组取top数据

    分组取TOP数据是T-SQL中的常用查询, 如学生信息管理系统中取出每个学科前3名的学生.这种查询在SQL Server 2005之前,写起来很繁琐,需要用到临时表关联查询才能取到.SQL Serve ...