• 【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 时触发,先把外键表中对应的数据删除,再把主键表中的数据删除。

  • 相关阅读:
    单张图片转PDF(基于Go语言实现)
    Django在前后端分离项目中,如何针对GET接口请求加入缓存机制
    Python3解决Nginx日志的中文乱码问题
    Python3通过Redis实现学生分数排行榜
    Jmeter之Json提取器用法收藏(非常给力的一篇!)
    H5和安卓的转义字符问题

    数组
    链表
    替换空格 JS算法题
  • 原文地址:https://www.cnblogs.com/qq609113043/p/6560122.html
Copyright © 2020-2023  润新知