1. --不带参数的存储过程
  2. CREATE procedure proc_sql1
  3. as
  4. begin
  5. declare @i int
  6. set @i=0
  7. while @i<26
  8. begin
  9. print char(ascii('a')+@i)+'的ASCII码是:'+cast(ascii('a')+@i as varchar(50))
  10. set @i=@i+1
  11. end
  12. end
  13.  
  14. execute proc_sql1
  15.  
  16. --数据查询不带参数的储存过程
  17. create procedure proc_sql4
  18. as
  19. begin
  20. select * from 职工 where 姓名 like '%张%'
  21. select * from 仓库 where 仓库号 in(
  22. select 仓库号 from 职工 where 姓名 like '%张%' )
  23. end
  24. go
  25. execute proc_sql4
  26.  
  27. --带有输入参数的存储过程
  28. create proc proc_sql5
  29. @x1 int,
  30. @x2 int,
  31. @x3 int
  32. as
  33. begin
  34. declare @max int
  35. if @x1>@x2
  36. set @max=@x1
  37. else
  38. set @max=@x2
  39.  
  40. if @x3>@max
  41. set @max=@x3
  42.  
  43. print '3个数中最大的数是:'+cast(@max as varchar(50))
  44. end
  45.  
  46. execute proc_sql5 15,28,39
  47.  
  48. --带有输入参数的查询存储过程
  49. create proc proc_sql7
  50. @mingz int,
  51. @maxgz int
  52. as
  53. select * from 职工 where 工资 between @mingz and @maxgz
  54.  
  55. execute proc_sql7 1500,1800
  56.  
  57. --带输入和输出参数的存储过程
  58. create proc proc_sql9
  59. @changkuhao varchar(50),
  60. @maxgz int output,
  61. @avggz real output
  62. as
  63. begin
  64. select * from 职工 where 仓库号=@changkuhao
  65. select @maxgz=max(工资) from 职工 where 仓库号=@changkuhao
  66. select @avggz=avg(工资) from 职工 where 仓库号=@changkuhao
  67. end
  68.  
  69. --显示指定仓库号的职工信息及该仓库号的最大工资和平均工资
  70. declare @x1 int,@x2 real
  71. execute proc_sql9 'wh1',@x1 output,@x2 output
  72. select @x1 as wh1职工最大工资,@x2 as wh1职工平均工资
  73.  
  74. ---带登陆判断功能的存储过程
  75. create proc proc_sql10
  76. @hyuser varchar(50),
  77. @hypwd varchar(50)
  78. as
  79. begin
  80. declare @msg varchar(50)
  81. if @hyuser='hystu1'
  82. begin
  83. if @hypwd='111'
  84. set @msg='用户名与密码正确,成功登录!'
  85. else
  86. set @msg='密码不正确,请重新输入!'
  87. end
  88. else if @hyuser='hystu2'
  89. begin
  90. if @hypwd='222'
  91. set @msg='用户名与密码正确,成功登录!'
  92. else
  93. set @msg='密码不正确,请重新输入!'
  94. end
  95. else if @hyuser='hystu3'
  96. begin
  97. if @hypwd='333'
  98. set @msg='用户名与密码正确,成功登录!'
  99. else
  100. set @msg='密码不正确,请重新输入!'
  101. end
  102. else
  103. set @msg='用户名不正确,请重新输入!'
  104. print @msg
  105. end
  106.  
  107. execute proc_sql10 'hystu1','111'
  108.  
  109. --带有判断条件的插入功能的存储过程
  110. create proc proc_sql13
  111. @zghao varchar(30),
  112. @ckhao varchar(30),
  113. @sname varchar(50),
  114. @sex varchar(10),
  115. @gz int
  116. as
  117. begin
  118. if exists(select * from 职工 where 职工号=@zghao)
  119. print '该职工已存在,请重新输入职工号!'
  120. else
  121. begin
  122. if exists(select * from 仓库 where 仓库号=@ckhao)
  123. begin
  124. insert into 职工(职工号,仓库号,姓名,性别,工资) values(@zghao,@ckhao,@sname,@sex,@gz)
  125. print '成功的插入一条记录'
  126. end
  127. else
  128. print '输入的仓库号不合法,请重新输入仓库号!'
  129. end
  130. end
  131. GO
  132.  
  133. execute proc_sql13 'zg1','wh1','张平','女',1350
  134.  
  135. execute proc_sql13 'zg42','wh11','张平','女',1350
  136.  
  137. execute proc_sql13 'zg42','wh1','张平','女',1350

SqlServer和Oracle中一些常用的sql语句6 存储过程的更多相关文章

  1. SqlServer和Oracle中一些常用的sql语句9 SQL优化

    --SQL查询优化 尽量避免使用or,not,distinct运算符,简化连接条件 /*Or运算符*/ use db_business go select * from 仓库 where 城市='北京 ...

  2. SqlServer和Oracle中一些常用的sql语句5 流程控制语句

    --在sql语句中 begin...end 用来设定一个程序块 相关于c#中的{} declare @yz real,@w int --声明变量 set @w=120 --为变量赋值 if @w< ...

  3. SqlServer和Oracle中一些常用的sql语句10 特殊应用

    --482, ORACLE / SQL SERVER --订购数量超过平均值的书籍 WITH Orders_Book AS ( SELECT Book_Name, SUM(Qty) Book_Qty ...

  4. SqlServer和Oracle中一些常用的sql语句3 行列转换

    --217, SQL SERVER SELECT Cust_Name , MAX(CASE WHEN Order_Date ='2009-08-01' THEN AR END) "2009- ...

  5. SqlServer和Oracle中一些常用的sql语句7 游标

    declare db_cursor4 scroll cursor for select * from 供应商 --声明游标 open db_cursor4 --打开游标 fetch first fro ...

  6. SqlServer和Oracle中一些常用的sql语句8 触发器和事务

    --创建和执行事后触发器 --更新仓库备份表中记录时自动创建数据表且插入三条记录 create trigger db_trigger1 on 仓库备份 for update as begin if E ...

  7. SqlServer和Oracle中一些常用的sql语句4 局部/全局变量

    --把wh1仓库号中姓名含有"平"字的职工工资在原来的基础上加288 update 职工备份 set 工资=工资+288 where 仓库号='wh1' and 姓名 like ' ...

  8. SqlServer 获取字符串中小写字母的sql语句

    SQL字符串截取(SubString) 作用:返回第一个参数中从第二个参数指定的位置开始.第三个参数指定的长度的子字符串. 有时候我们会截取字符串中的一些特殊想要的东西,大小写字母.模号.汉字.数字等 ...

  9. SqlServer 查看备份文件中逻辑文件信息的Sql语句

    RESTORE FILELISTONLY FROM DISK = 'D:\All\DataBase\(2013-12-18)-1.bak' 用来查看备份文件中的逻辑文件信息. 相关信息:SqlServ ...

随机推荐

  1. [C#参考]事件和委托的关系

    前面说了委托,接下来就要说一说事件了,同时最后再说一下委托和事件的区别. 事件和委托很相似,事件就好像是被简化的针对特殊用途的委托.看下面的图: 从这张图中能看到,事件是发布者的一个成员,它不是类型. ...

  2. chown命令详解

    chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID:组可以是组名或者组ID:文件是以空格分开的要改变权限的文件列表,支持通配符.系统管理员经常使用chown命令,在将文件拷贝 ...

  3. easyui学习日记20141213

    一.前言 对于页面的设计一直都不是很懂.看到easyui样式简洁大方的样子,就心里痒痒,趁这段时间工作没什么项目的同时充充电.同时给自己做个笔记吧. 首先需要下载easyui的包,有两种版本,支持GP ...

  4. Laravel OAuth2 (三) ---使用 services 和 facades

    前言 既然要判断用户是否存在,然后创建用户,那么就要实现几个功能函数.为了方便调用,于是我尝试着写了第一个service 和 facade . 创建 Facade class Social exten ...

  5. 一、Linux启动过程详解

    启动第一步--加载BIOS当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它.这是因为BIOS中包含了CPU的相关信息.设备启动顺序信息.硬盘 ...

  6. KbmMW资源汇总(更新中…)

    KbmMW框架是收费的,不在此提供下载,如需购买,请自行联系作者Kim Madsen. 网址资源: 官网主页:http://www.components4programmers.com/product ...

  7. C 语言中的变量为什么不能以数字打头

    C 语言中的变量为什么不能以数字打头? C 语言中的变量为什么不能以数字打头? 不要告诉我编译原理书上有.我暂时看不懂. 除了下面的解释外, “假如变量名允许以数字开头的话,那么语法分析器在解析一个全 ...

  8. PHP 自学之路-----XML编程(Xpath技术,simpleXml技术)基础入门

    XPAth技术 XPath的设计的核心思想,可以通过xpath迅速简介的定位到你希望查找的节点.主要目的是描述节点相对其他节点的位置,可以取得所有符合条件的节点,成为[位置路径]. Xapth主要用来 ...

  9. hdu4513之manacher算法

    吉哥系列故事——完美队形II Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) T ...

  10. 案例分析:java中substring引发的Full gc

    问题定位 由于应用频繁地Full gc,就dump了内存下来用MAT分析,发现有个map占用了98%的内存,于是找到这个map private ConcurrentMap<String, Str ...