一直以来,对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 存储过程名

SQL存储过程教程的更多相关文章

  1. sql server教程

    简单认识 SQL Server sql server教程 SQL Server 是 Microsoft 开发的一个关系数据库管理系统(RDBMS),现在是世界上最为常用的数据库: SQL Server ...

  2. PL/SQL存储过程编程

    PL/SQL存储过程编程 /**author huangchaobiao *Email:huangchaobiao111@163.com */ PL/SQL存储过程编程(上) 1. Oracle应用编 ...

  3. SQL存储过程分页(通用的拼接SQL语句思路实现)

    多表通用的SQL存储过程分页 案例一: USE [Community] GO /****** Object: StoredProcedure [dbo].[Common_PageList] Scrip ...

  4. SQL存储过程的调用及写法

    调用函数: public class SqlProcess { ; public DataSet ReturnSet = null; public SqlDataAdapter adapter = n ...

  5. sql存储过程几个简单例子

    导读:sql存储是数据库操作过程中比较重要的一个环节,对于一些初学者来说也是比较抽象难理解的,本文我将通过几个实例来解析数据库中的sql存储过程,这样就将抽象的事物形象化,比较容易理解. 例1: cr ...

  6. SQL存储过程生成顺序编码

    一.第一种方式 USE [WJKC]GO/****** Object:  StoredProcedure [dbo].[Address_GetCode1]    Script Date: 2016/3 ...

  7. SQL 存储过程入门(事务)(四)

    SQL 存储过程入门(事务)(四)   本篇我们来讲一下事务处理技术. 为什么要使用事务呢,事务有什么用呢,举个例子. 假设我们现在有个业务,当做成功某件事情的时候要向2张表中插入数据,A表,B表,我 ...

  8. 在SQL存储过程中给条件变量加上单引号

    在SQL存储过程中给条件变量加上单引号,不加语句就会出问题,以下就是在存储过程中将条件where设置成了动态变化的,给where赋完值再和前面的语句拼接,再execute(SQL) ), )), )+ ...

  9. SQL存储过程概念剖析

    一.SQL存储过程的概念,优点及语法 定义:将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来, 那么以后要叫数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execut ...

随机推荐

  1. Java远程方法协议(JRMP)

    Java远程方法协议(英语:Java Remote Method Protocol,JRMP)是特定于Java技术的.用于查找和引用远程对象的协议.这是运行在Java远程方法调用(RMI)之下.TCP ...

  2. Mingw编译DLib

    Mingw编译DLib 因为机器上安装了qt-opensource-windows-x86-mingw530-5.8.0,所以准备使用其自带的mingw530来编译DLib使用. 因为DLib使用CM ...

  3. Oracle 中TNS的作用

    什么是TNS? TNS是Oracle Net的一部分,专门用来管理和配置Oracle数据库和client连接的一个工具,在大多数情况下client和数据库要通讯,必须配置TNS,当然在少数情况下,不用 ...

  4. iOS手势的综合运用

    //自定义一个VIEW封装手势功能 // CustormView.m // gesterDemoo // // Created by ganchaobo on 13-7-13. // Copyrigh ...

  5. [转载][Groovy] Groovy与Java的区别(一)

    原文地址:[Groovy] Groovy与Java的区别(一)作者:langyizhao 因为Groovy可以用Java的所有功能(虽然JVM不同的时候可能会比较麻烦,比如在Android上),所以G ...

  6. HanLP自定义词典注意事项

    对于词典,直接加载文本会很慢,所以HanLP对于文本文件做了一些预处理,生成了后缀名为.txt.bin的二进制文件. 这些二进制文件相当于缓存,避免了每次加载去读取多个文件. 通过这种txt和bin结 ...

  7. Linux下Valgrind的使用概述 来源:Linux社区 作者:dndxhej

    本地使用情况,在Ubantu系统上编写的测试性能: 1,下载:sudo apt-get install valgrind; 2,验证是否安装成功:试着valgrind ls -l来检测是否正常工作: ...

  8. Google大数据技术架构探秘

    原文地址:https://blog.csdn.net/bingdata123/article/details/79927507 Google是大数据时代的奠基者,其大数据技术架构一直是互联网公司争相学 ...

  9. 基于matplotlib的数据可视化(图形填充fill fill_between) - 笔记(二)

    区域填充函数有 fill(*args, **kwargs) 和fill_between() 1  绘制填充多边形fill() 1.1 语法结构 fill(*args, **kwargs) args - ...

  10. cron执行service

    在Cron的环境下,是没有定义路径的,所以,service xxx start等等要使用绝对路径 => /sbin/service xxx start service的路径可以用whereis ...