Transact-sal程序设计

局部变量声明语法:

DECLARE @variable_name datatype

      [,@variable_name datatype]

      ......

变量赋值:

SET @variable_name=expression

全局变量:是SQL Server 预先声明并负责维护的变量。用户不能随意建立全局变量,也不能用SET语句来修改全部变量的值,全局变量的变量名均已@@开头

30多个全局变量,份两类

1、与当前SQL Server连接或与当前处理有关的全局变量

@@rowcount 表示最近一个sql语句影响的行数

@@error 标识最近执行的操作的错误状态

2、与整个系统有关的变量

@@version sql版本信息

@@cpu_busy 标识SQL Server 启动以来所占用的cpu运行时间。

常用的全局变量:

@@transtate        存储事务嵌套的层次

@@tranChained    存储当前事务的模式

@@servername    SQL Server服务器的名称

@@spid        当前传递的ID号

@@identity      存储上一次INSERT操作所使用的identity值

@@nestlevel      存储过程或触发器的嵌套层次

@@fetch_status    存储上一条fetch语句的状态

 

变量

变量是一种可以存储数据值的对象,变量可以分为局部变量和全局变量。
1、局部变量

局部变量是用户自定义的变量,它的作用范围仅在程序内部,

使用:以@开头,且必须先使用DECLARE命令说明后才可以使用

声明变量:

DECLARE  @变量名 数据类型

    DECLARE @id char (10)   --声明一个长度为个字符的变量id
    DECLARE @age int   --声明一个存放职员年龄的整型变量

赋值:

SET @变量名=值:用于普通的赋值

SELECT @变量名=值:用于从表中查询数据并赋值

使用变量:


2、全局变量

是SQL Server系统内部使用的变量,由系统定义和维护,我们只能使用,不能修改。

引用全局变量时必须使用@@开头

常用的全局变量

 

 

 



两种变量的区别

 

 

 



输出语句

有两种输出语句

PRINT 变量表达式 :以消息的形式进行显示

SELECT 变量或表达式:以表格(选择集)的形式进行显示

使用convert函数

 

 

 



逻辑控制语句
IF-ELSE

语法:

    IF<条件表达式>
    BEGIN
    <命令行或程序块>
    END
    [ELSE[条件表达式]
    BEGIN
    <命令行或程序块>]
    END

 

 


 WHILE…CONTINUE….BREAK

语法:

    WHILE<条件表达式>
    BEGIN
    <命令行或程序块>
    [BREAK]
    [CONTINUE]
    [命令行或程序块]
    END

 

 

CASE(简单型)

语法:

CASE input_expression

  WHEN when_expression THEN result_expression

      [....n]

[

  ELSE else_result_expression

]

END

说明: input为条件表达式,when用于与input进行比较,值相等执行result,都不相等执行else


CASE(搜索型)

语法:

    CASE
    WHEN<条件表达式1>THEN<运算式结果1>
    WHEN<条件表达式2>THEN<运算式结果2>
    [ELSE<运算式>]
    END

说明:首先测试WHEN后面的布尔表达式,如果值为真,则执行对应的运算式,否则进行下一个布尔表达式,如果没有值为真,则执行else运算式


批处理

GO关键字标志这批处理的结束

如果批处理语句中出现编译错误(如语法错误)可使执行计划无法编译。因此未执行批处理中的任何语句。
批处理可以提高语句执行的效率。
————————————————
版权声明:本文为CSDN博主「Angel Devil」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq3178124798/article/details/80180131

posted @ 2020-03-11 17:17  八风不动  阅读(129)  评论(0编辑  收藏  举报