5.1 什么是T-SQL
    1.SQL是结构数据查询语言的英文缩写,是一种使用关系模型的数据库应用语言。

5.2 SQL标识符
    1. 标识符是一个由用于定义的,SQL Server可识别的有意义的字符序列。通常用它们来表示服务器名、数据库名、数据库对象名、常量、变量、存储过程名称等。
    命名规则:
     1)标识符的长度可以为1~30个字符
     2)标识符的第一个字符必须为字母、下划线、@以及#。
        以@为首的标识符表示一个局部变量。
        以#为首的标识符表示一个临时数据库对象。对于表或存储过程,名称前包含一个#时表示局部临时对象,而两个#(##)表示全局临时对象。
     3)标识符中第一个字符后面可以是字母、数字、#、$和下划线
     4)默认情况下,标识符内不允许有空格,也不允许将SQL关键字作为用于定义的标识符,但可以使用引号来定义特殊标识符,并在定义之前,将QUOTED.INENTIFER设置为ON。

5.3 T-SQL运算符
    1. 算术运算符
    算术运算符用于数值型列或变量间的算术运算符。包括加,减,乘,除和取模
   
   
    2. 位运算符
    用以对数据进行按位与(&)、或(|)、异或(^)、求反(~)。
   
    3. 比较运算符
    用来比较两个表达式的值是否相同,有大于(>)、小于(<)、大于等于(>=)、小于等于(<=)和不等于(!=)。
    通常出现在条件表达式中。
   
    4. 连接运算符
    用于两个字符串数据的连接。


5.4 T-SQL变量
    1. 局部变量
    局部变量一般出现在批处理、存储过程和触发器中,要使用局部变量,必须在使用前以declare语句定义。
    在使用declare语句来声明局部变量时,必须提供变量名称及它的数据类型,变量名前必须有一个@符号。
    局部变量仅生存于声明它的批处理、存储过程或触发器。
   
    2. 局部变量赋值
    在SQL中,通常用SELECT语句为变量赋值,格式:
    select @variable_name = expression[,……]
        from ……
        where ……
    在局部变量没有被赋值前,它的值是NULL,如果要在程序体中引用它,特别是在循环结构中,必须先为其赋值。
    通常情况下,一条select赋值语句只能返回一行。如果一条select赋值语句在检索数据后返回了多行,则则只将返回的最后一行的值赋给局部变量。
    可使用两种方法来保证select语句值返回一行,即只有一个指定值返回给了变量:
    1)在where子句中使用主关键字或唯一关键字
    declare @single_auth varchar(40),
            @curdate datetime
    select @single_auth = auth_lname,
           @curdate =getdate()
    from authors
    where au_id = "123-45-6789"
   
    2)在select列表中使用一个集合函数
    delcare @lname varchar(40)
    select @lname = max (au_lname)
        from authors
    print @lname
   
   
    3. 利用UPDATE为局部变量赋值
    如:
    declare @qty_smallint
    update sales
        set @qty = qty*2
    where title_id = "BU1032"
        and stor_id = "6380"
        and ord_num = "6871"
   
    4. 全局变量
    @ @rowcount----------------------------前一条命令处理的行数
   
    @ @error-------------------------------前一条SQL语句报告的错误号
   
    @ @trancount---------------------------事务嵌套的级别
   
    @ @transtate---------------------------事务的当前状态
   
    @ @tranchained-------------------------当前事务的模式
   
    @ @servername--------------------------本地SQL Server的名称
   
    @ @version-----------------------------SQL Server和O/S版本级别
   
    @ @spid--------------------------------当前进程id
   
    @ @identity----------------------------上次INSERT操作中使用的identity值
   
    @ @nestlevel---------------------------存储过程/触发器的嵌套层
   
    @ @fetch_status------------------------游标中上条FETCH语句的状态
   
   
   
   
   
   
   
   
   


 

posted on 2008-01-28 20:03  菲奥内  阅读(438)  评论(0)    收藏  举报