zoukankan      html  css  js  c++  java
  • 【2017-03-16】TSQL基本编程、存储过程、触发器

    一、TSQL基本编程

    1、定义变量 :declare @变量名 数据类型        变量名前面必须加"@"符号

    declare @aaa int;

    declare @bbb nvarchar(200);


    2、赋值: set @变量名 = 值            select @变量名 = 值  -- 好用

    select @bbb ='哈哈';          


    3、取值打印:   select @变量名      print @变量名

    select @bbb;

    print @bbb;

    select top 1 name from Student;   --从Student表中name列第一行数据取出来

    4、分支语句
    if @aaa>@bbb
    begin
    语句。。。。
    end
    else
    begin
    ....
    end

    5、循环语句:
    注意循环四要素:初始条件,循环条件,循环体,状态改变

    declare @a int;
    select @a = 1;    --初始条件

    while  @a<=10   --循环条件

    begin

         select @a;              --循环体

         select @a=@a+1;   --状态改变

    end

    二、存储过程将一堆代码放到存储过程中,可以一句话调用这些代码

    相当于C#中的函数

    1、创建一个存储过程 Jiafa

    create proc Jiafa     

    @a int,

    @b int

    as

             return @a+@b;

    2、调用该存储过程

    exec Jiafa 5,10

    打印结果:

    declare @ccc int;   --定义一个变量

    exec @ccc=Jiafa 5,10;  --把加法的结果赋给变量ccc

    select @ccc;           --打印ccc

     

    3、存储过程常用用法:

    将查看表的代码放在存储过程中,在使用的时候只需调用存储过程exec SelectAll 就可

    create proc SelectAll

    as

    select * from Student

    select * from Score

    select * from Course

    select * from Teacher

     

    exec SelectAll

    三、触发器

    一个特殊的存储过程,没办法直接调用它,而是通过增删改查的动作来触发它。

    一个表的一个动作只能有一个触发器。

    create trigger 哪个表的哪个动作       --创建一个触发器+ 名字
    on 表名                                       --针对于哪一个表写的触发器     
    for 动作                                      --针对于哪一个动作触发之后的触发器
    instead of 动作                             --针对于哪一个动作执行替换
    as
    触发器内容

    creat trigger users_delete

    on users

    for delete

    as

    select * from users

    触发器常用用法:级联删除

    要删除class表中的数据 因为class为主键表 直接删除删除不掉所以用触发器来实现。

    在class表中遇到delete 时触发,先把外键表中对应的数据删除,再把主键表中的数据删除。

  • 相关阅读:
    Ajax学习笔记2客户端访问WebService(上)
    在 .NET Framework 2.0 中未处理的异常导致基于 ASP.NET 的应用程序意外退出(我加了点注释)
    想用JS写一段鼠标拖拽调整图片大小的代码(未完)
    key/value/index 类型定义for .net
    ReadOnly属性对TEXTBOX的状态保存有影响?
    软件开发工具名称集锦(无下载地址,收集中...)
    AjaxPro让.NET的AjaxPro变得简单
    Ajax学习笔记(15):使用ASP.NET AJAX提供的Authentication Service
    在.NET中使用Newtonsoft.Json转换,读取,写入
    Orcale的 rownum
  • 原文地址:https://www.cnblogs.com/qq609113043/p/6560122.html
Copyright © 2011-2022 走看看