现在的位置: 首页 > 综合 > 正文

SQL Server脚本编写和批处理

2013年05月11日 ⁄ 综合 ⁄ 共 1455字 ⁄ 字号 评论关闭

一.USE语句

用于设置当前的数据库

二.声明变量

DECLARE语句的语法格式如下:

sd

可以一次声明一个变量,也可以一次声明多个变量。如果声明变量时,没有初始化变量,那么其值为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;

三.一些系统全局变量

sd

sd

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语言实现方式比较接近,其语法结构如下:

sd

 其中表达式可以为任何布尔表达式。

2.CASE语句

CASE语句的最大好处是它可与SELECT语句“内联”使用。如果有多个匹配,值匹配第一个。其有两种方法编写:

1)使用输入表达式,它将与每个WHEN子句中使用的值比较。如果没有对应值,也没有ELSE,那么其值为NULL。其语法格式如下:

sd

 2)使用波尔表达式。为每个WHEC提供一个布尔表达式,将评估其值是否为TRUE和FALSE。并且CASE后没有表达式。

sd

3.使用WHILE语句进行循环

其与其他语言意义差不多,每次循环都判断表达式,是否为TURE。其语法结构如下:

sd

4.使用WAITOR语句

该语句让代码在该语句处等待一段时间后或者直到某个时间,后面的代码才能运行。其语法结构如下:

sd

 

其中DELAY用于设置等待时间段,TIME后为等待到某个时刻。它们都不能为天,只能为小时、分钟、秒数,最长时间为24小时。

5.TRY/CATCH块

其可以对错误进行预处理,只有当错误级别在11~19时,才能跳出TRY语句进入CATHC语句。其语法结构如下:

sd

错误级别如下:

sd

可以通过下面函数获取错误:

sd

七、输出语句

有两种支持语句:print和SELECT。

1.print语句

其语法:print 局部变量或字符串

显示:会在消息窗口中以文本方式显示。

2.SELECT语句

其语法:SELECT 局部变量 AS 自定义列名

显示:会在结果窗口中以表格的方式显示。

抱歉!评论已关闭.