博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL存储过程教程
阅读量:6264 次
发布时间:2019-06-22

本文共 1162 字,大约阅读时间需要 3 分钟。

 

 

一直以来,对SQL SERVER的存储过程和触发器都基本没有用到,只是偶尔从网上找几个简单的函数PASTE到我的SQL中用。自己写总是感觉缺点什么,前几天单位的培训讲了一天的SQL SERVER,看了老师写的存储过程,才发现原来存储过程也不是很难。

事实上,也是我一直没有坚持研究的原因,但是不能否认的是,有人讲和自己学,这其中的效率实在是无法相比。尤其是对于我们这种已经编过很多年的程序,但是却又静不下心来看书学习的人来说,很多东西其实就是需要有人在前面带那么一下,把那层纸捅破了,给大家一个概貌性的东西,余下的,就只是个时间和熟练性的问题了。

 

我认为的存储过程的纸就在这里:

1、变量的声明和使用

  declare @var as varchar(50)

  set var='abcd'

2、IF循环

if isnull(@prjid,0)=0 

 begin
  print '没有找到prjid!!!'
  return
 end
else

  begin

   --必须在这里写一些代码,否则会报错。

  end

3、游标的使用

  1. declare curJD cursor for 
  2.     select id,fzbh from _tzk
  3. open curJD
  4. fetch next from curJD into @jdID,@paperno
  5. while @@FETCH_STATUS=0
  6. BEGIN
  7.   --这里是一些处理代码
  8.   fetch next from curJD into @jdID,@paperno
  9. END
  10. close curJD
  11. deallocate curJD

4、触发器的使用

关键在于inserted表和deleted表的使用

  1. ALTER   TRIGGER  RoleInsert  ON [dbo].[roleName] 
  2. AFTER  INSERT
  3. AS
  4. declare @RoleID as bigint
  5. set @RoleID=(select roleid from inserted)
  6. insert into rolerule (roleid,menuid,pw) 
  7. select @roleid,menuid,0 from menus where menus.menuid not in 
  8. (select menuid from rolerule where roleid=@roleid) 
  9. update rolerule set pw=1 where menuid in (select menuid from menus where always=1)
  10.     and roleid in (select roleid from inserted)

然后有了这几个例子,其它的就是熟练的一个过程了 单独一个窗口  execute 存储过程名

转载地址:http://vidpa.baihongyu.com/

你可能感兴趣的文章
数组完成约瑟夫环
查看>>
[LeetCode]Letter Combinations of a Phone Number
查看>>
数据结构中的基本排序算法总结
查看>>
np一些基本操作1
查看>>
面试真题-----hashMap原理
查看>>
js阻止事件冒泡 return false / e.stopPropagation() /e.preventDefault()
查看>>
CSS伪类使用
查看>>
哈佛成功金句
查看>>
iview Table表格单选框互斥
查看>>
leetcode278
查看>>
CodeForces-771D-Bear and Company
查看>>
PAT 1032 Sharing
查看>>
Extjs设置或获取cookie
查看>>
CC2541蓝牙BLE4.0主从透传工程
查看>>
iOS OC中block使用
查看>>
python之路--操作系统介绍,进程的创建
查看>>
markdown语法小结
查看>>
Java Gui 设计模式中的事件监听
查看>>
JavaSE-final关键字
查看>>
python自动化开发-1
查看>>