一.USE语句
用于设置当前的数据库
二.声明变量
DECLARE语句的语法格式如下:
可以一次声明一个变量,也可以一次声明多个变量。如果声明变量时,没有初始化变量,那么其值为NULL。设置变量的值有两种方式:
1)使用SET设置变量
eg: SET @total=100;
SET @ti=@total*100;
SET @ds=(SELECT MAX(ID) FROM mytable);
2)使用SELECT设置变量
eg:SELECT @ti=MAX(ID) FROM mytable;
三.一些系统全局变量
1)使用@@IDENTITY:用于得到最后一个操作所产生的自增域的值(通过创建表时使用IDENTITY标识定义自增列)。
2)使用@@ROWCOUNT:这个函数用于返回最后一条语句影响的行数。
3)不带FROM子句的SELECT,用于返回局部变量或函数的值。
四.批处理
批处理是将所有语句被组成一个执行计划,所有语句一起做语法分析,如果一条语句没有错误,那么所有语句都无法运行;在运行时一条语句发生错误,不会影响前面的语句,也就是说前面的语句已经运行了。
可以使用GO将一个脚本分为多个批处理。1)GO语句必须自成一行,不能出现在行尾,但可以出现在行首;2)每个批处理被独立的处理,不相互影响,也就是说一个批处理错误,不影响另一个批处理运行。但可以让后一个批处理依赖于前一个批处理,这样就可能影响。3)GO不是T-SQL命令。
下面这些命令必须要有自己的批处理:1)CREATE DEFAULT;2)CREATE PROCEDURE;3)CREATE RULE;4)CREATE TRIGGER;5)CREATE VIEW;
注:当需要建立优先权时,就可能要用到批处理。
五.SQLSMD命令
可以使用sqlsmd命令在windows命令提示符下来运行脚本应用程序,其也是一种获取文本文件的一种简易方式。
六.控制流语句
1.IF.....ELSE语句
其与C语言实现方式比较接近,其语法结构如下:
其中表达式可以为任何布尔表达式。
2.CASE语句
CASE语句的最大好处是它可与SELECT语句“内联”使用。如果有多个匹配,值匹配第一个。其有两种方法编写:
1)使用输入表达式,它将与每个WHEN子句中使用的值比较。如果没有对应值,也没有ELSE,那么其值为NULL。其语法格式如下:
2)使用波尔表达式。为每个WHEC提供一个布尔表达式,将评估其值是否为TRUE和FALSE。并且CASE后没有表达式。
3.使用WHILE语句进行循环
其与其他语言意义差不多,每次循环都判断表达式,是否为TURE。其语法结构如下:
4.使用WAITOR语句
该语句让代码在该语句处等待一段时间后或者直到某个时间,后面的代码才能运行。其语法结构如下:
其中DELAY用于设置等待时间段,TIME后为等待到某个时刻。它们都不能为天,只能为小时、分钟、秒数,最长时间为24小时。
5.TRY/CATCH块
其可以对错误进行预处理,只有当错误级别在11~19时,才能跳出TRY语句进入CATHC语句。其语法结构如下:
错误级别如下:
可以通过下面函数获取错误:
七、输出语句
有两种支持语句:print和SELECT。
1.print语句
其语法:print 局部变量或字符串
显示:会在消息窗口中以文本方式显示。
2.SELECT语句
其语法:SELECT 局部变量 AS 自定义列名
显示:会在结果窗口中以表格的方式显示。