-------------------------------------游标和循环--------------------------------

DECLARE CATEGORY_CUR SCROLL CURSOR For  SELECT*FROM dbo.Categories   FOR UPDATE OF CategoryName  OPEN CATEGORY_CUR  GO

UPDATE Categories  SET CategoryName='家电'  where CURRENT OF CATEGORY_CUR      SELECT*FROM Categories   DECLARE @VAR INT SET @VAR=0 WHILE @VAR<100000 BEGIN INSERT INTO dbo.Categories VALUES('测试数据') SET @VAR=@VAR+1 END        SELECT Count(*)FROM dbo.Products    delete from dbo.Categories   exec sp_helpdb

------------------------------------存储过程以及分页----------------------------

create procedure prSelctCategories AS BEGIN SELECT*FROM Categories END

EXECUTE prSelctCategories

Create Procedure prSelct @id int as select*from Categories where CategoryID=@id

execute prSelct 2763993

create procedure pr @id int, @name varchar(20) as Select*from Categories where CategoryID=@id and CategoryName=@name

execute pr 2763993,'测试数据'

GO

create procedure rp @id int, @content varchar(20) output as select @content= CategoryName from Categories where CategoryID=@id

GO

DECLARE @content varchar(20) execute rp 2763993,@content output PRINT @content

DECLARE @PRODEUCTNAME VARCHAR(20),@CATEGORYID INT,@PRUDUCTNUM INT,@VAR INT SET @VAR=0 SET @CATEGORYID=2763985 WHILE @VAR<10000 BEGIN INSERT INTO Products VALUES('洗衣粉',@CATEGORYID,@VAR,DEFAULT,DEFAULT) SET @VAR=@VAR+1 END

select*from Products delete from Products GO

create procedure sp_proPage @pageindex int=1, @pagesize  int=10 as select top(@pagesize)*from products where productID not in( select top ((@pageindex-1)*@pagesize) productID from Products order by ProductID)

GO execute sp_proPage 3,5000

Go

Create procedure proc_Page @pageIndex int,   --当前页 @pageSize int,   --每页多少条数据 @pageCount int output --总共多少页 as declare @firstIndex int --firstIndex开始 declare @lastIndex int --lastIndex结束 declare @total int set @firstIndex=(@pageIndex-1)*@pageSize+1 set @lastIndex=@pageSize*@pageIndex select @total=COUNT(*)from Products if(@total%@pageSize<>0)  begin set @pageCount=@total/@pageSize+1  end else  begin  set @pageCount=@total/@pageSize  end --先对主键进行排序,然后用ROW_NUMBER进行编号  select*from (select ROW_NUMBER()over(order by ProductID)as PID,* from  Products)as PTB where PID between @firstIndex and @lastIndex

declare @pageCount int execute proc_Page 1,10,@pageCount output print @pageCount

--------------------------------------事务的使用--------------------------------------

create table Bank (    ID INT NOT NULL PRIMARY KEY,    MONERYS MONEY )  INSERT INTO Bank VALUES(1,'2000')  INSERT INTO Bank VALUES(2,'5000')  GO  CREATE PROCEDURE PROC_MON  @TOID int,  @FROMID INT,  @MONEYS MONEY  AS SET XACT_ABORT on BEGIN TRAN  DECLARE @Counterror int=0 UPDATE Bank SET MONERYS=MONERYS-@MONEYS WHERE ID=@FROMID --转账账户减去金额  set @Counterror=@Counterror+@@ERROR  UPDATE Bank SET MONERYS=MONERYS+@MONEYS WHERE ID=@TOID   --转账账户加上金额  set @Counterror=@Counterror+@@ERROR IF  @Counterror<>0  --判断是否出现错误  begin rollback tran  --如果有错开始回滚  RETURN 0  END  else       --如果没有错误  begin commit tran --执行事务  RETURN 1 END GO  execute PROC_MON 1,2,2000  select*from bank

-----------------------------------------------------触发器操作-------------------------------------------- ----

DML触发器:DML事件即指在表或视图中修改数据的insert、update、delete语句。 ----DDL触发器: DDL事件即指在表或索引中的create、alter、drop语句也。 GO create trigger BankUpdateTrigger on Bank for update as print'the table was updated!'

Update Bank set MONERYS=5 where ID=1

select*from Bank

execute sp_helptext BankUpdateTrigger     --查看触发器内容 select * from sysobjects where xtype='TR' --产看数据库多少触发器 disable trigger BankUpdateTrigger on Bank  --禁用触发器 enable  trigger BankUpdateTrigger on Bank --开启触发器 GO Alter trigger BankUpdateTrigger on Bank for update as if exists(select*from Bank where monerys=5) rollback         --触发器回滚,保持数据完整性

----------------------------------操作日志表----------------------------------------------------------

create table reapterLog (  LogID INT IDENTITY(1,1)PRIMARY KEY NOT NULL, )

转载于:https://www.cnblogs.com/jasonyang/archive/2013/05/22/3093233.html

存储过程,触发器,分页练习相关推荐

  1. 三层架构+ajax分页实例,ASP.NET存储过程实现分页效果(三层架构)

    本文实例为大家分享了ASP.NET存储过程实现分页的具体代码,供大家参考,具体内容如下 实现效果: 文本框内输入跳转的页数,点击GO会跳转到该页 首先在项目下加入BLL,DAL,DataAccess, ...

  2. mysql视图存储过程触发器

    以下笔记借鉴于黑马MYSQL视频,记录为个人学习笔记参考. 包含视图/存储过程/触发器等概念 目录 视图 view 语法 视图的检查选项 视图更新 作用 存储过程 procedure 语法 变量 系统 ...

  3. c语言怎么定义存储过程输出的游标,存储过程触发器和游标.ppt

    存储过程触发器和游标.ppt 数据库原理与应用教程―SQL Server 第11章存储过程.触发器和游标 引言 在SQL Server 2005应用操作中,存储过程.触发器和游标都扮演着相当重要的角色 ...

  4. MSSQLServer基础07(事务,存储过程,分页的存储过程,触发器)

    事务 事务:保证多个操作全部成功,否则全部失败,这处机制就是事务 思考:下了个订单,但是在保存详细信息时出错了,这样可以成功吗? 数据库中的事务:代码全都成功则提交,如果有某一条语句失败则回滚,整体失 ...

  5. SQL Server 存储过程的分页方案比拼

    建立表: CREATE TABLE [TestTable] (  [ID] [int] IDENTITY (1, 1) NOT NULL ,  [FirstName] [nvarchar] (100) ...

  6. SQL Server 存储过程的分页

    Code --建立表: CREATE TABLE [TestTable] (  [ID] [int] IDENTITY (1, 1) NOT NULL ,  [FirstName] [nvarchar ...

  7. 存储过程DataGrid分页及注意点

    sqlserver中的存储过程完整代码 /***************************************************************** * 存储过程名: GetC ...

  8. 使用存储过程创建分页

    在实际的开发过程中,经常遇到存储过程分页,下面根据实际情况总结的几种方法: 数据库名称:myTest 1.思路:利用select top and select not in 排除例外情况的分页 use ...

  9. oralce用存储过程实现分页 以及 用java调用这个存储过程的代码

    1  PL SQL  创建一个包 2 PL SQL 存储过程分页第一张图 3 PL SQL 存储过程分页第二张图 4 java 调用存储过程第一张图 5 java 调用存储过程 第二张图

  10. EF调用存储过程实现分页

    1.通用分页代码 public static List<T> SelectPageList<T>(string sqlstr, int pageIndex, int pages ...

最新文章

  1. jQuery学习入门总结之css()和addClass()的不同
  2. 数字证书KeyTool使用(第二篇)
  3. Object-c基础之一:#import,NSLog(),数据类型
  4. MyEclipse报错:String cannot be resolved to a type
  5. mysql高效sql语句_高效SQL优化 非常好用的SQL语句优化34条
  6. 图文详解mina框架
  7. 亚马逊自动化仓库事故,机器人失手戳破有毒喷雾,24名工人被送医院
  8. 2.2 Zend_Controller 基础
  9. 校园二手交易平台设计总览
  10. 数值分析Guass分解——错误讨论
  11. oracle 同义词循环连,Oracle出现ORA-01775: 同义词的循环链问题
  12. ResHacker使用小解
  13. 2010年JNCIA-FWV、JNCIS-FWV教学视频
  14. 基于Tensorflow深度学习的ECG身份识别方法(二)
  15. html 的id指什么,appid是什么?
  16. 小白学 Python 爬虫(26):为啥上海二手房你都买不起
  17. unicode中文数字与阿拉伯数字转换
  18. java md5 密钥_java代码实现MD5加密及验证方法
  19. matlab bwmorph spur,用python编写matlab的bwmorph(image,'spur')
  20. 票据打印控件 票据打印控件

热门文章

  1. SHELL编程一二三
  2. android 通过类名跳转activity,Activity跳转方式总结
  3. linux桌面服务器系统下载,Ubuntu 14.10 中文桌面版/服务器正式版下载
  4. MySQL 高级 - 触发器 - 创建及应用
  5. 对Spring创建对象的思考
  6. 初步认识Volatile-volatile 的作用
  7. 单机负载告警,数据库与应用分离
  8. xml配置文件的形式 VS 配置类的形式
  9. 字符流中的编码解码问题
  10. 依赖注入_Map类型的注入