第十一章SQL程序设计 程序中的批、脚本、注释 程序中的事务 冷 SQL Server变量 ☆程序中的流程控制
第十一章 SQL程序设计 ❖ 程序中的批、脚本、注释 ❖ 程序中的事务 ❖ SQL Server变量 ❖ 程序中的流程控制
第十一章SQL程序设计 ☆程序中的批处理、脚本、注释 当要完成的任务不能由单独的 Transact-SQL语句来完成时,SQL Server使用批处理、脚本、存储过程、触发器等来组织多条 Transact SQL语句 批处理 批处理就是一个或多个 Transact-SQL语句的集合,从应用程序次性发 送到 SQL Server并由 SQL Server编译成一个可执行单元,此单元称为执行计 划。执行计划中的语句每次执行一条。建立批处理时,使用GO语句作为批处 理的结束标记。在一个GO语句行中不能包括其他 Transact-SQL语句,但可以 使用注释文字。当编译器读取到GO语句时,它会把GO语句前面所有的语句 当作一个批处理,并将这些语句打包发送给服务器。GO语句本身并不是 Transact-SQL语句的组成部分,它只是一个用于表示批处理结束的前端指令。 如果在一个批处理中包含任何语法错误,如:引用了一个并不存在的对象 则整个批处理就不能被成功地编译和执行。如果一个批处理中某句有执 行错误,如违反了约束,它仅影响该语句的执行,并不影响批处理中其他语 句的执行
第十一章 SQL程序设计 ❖ 程序中的批处理、脚本、注释 当要完成的任务不能由单独的Transact-SQL语句来完成时,SQL Server使用批处理、脚本、存储过程、触发器等来组织多条TransactSQL语句。 1、 批处理 批处理就是一个或多个Transact-SQL语句的集合,从应用程序—次性发 送到SQL Server并由SQL Server编译成—个可执行单元,此单元称为执行计 划。执行计划中的语句每次执行一条。建立批处理时,使用GO语句作为批处 理的结束标记。在一个GO语句行中不能包括其他Transact-SQL语句,但可以 使用注释文字。当编译器读取到GO语句时,它会把GO语句前面所有的语句 当作一个批处理,并将这些语句打包发送给服务器。GO语句本身并不是 Transact-SQL语句的组成部分,它只是一个用于表示批处理结束的前端指令。 如果在一个批处理中包含任何语法错误,如:引用了一个并不存在的对象, 则整个批处理就不能被成功地编译和执行。如果一个批处理中某句有执 行错误,如违反了约束,它仅影响该语句的执行,并不影响批处理中其他语 句的执行
第十一章SQL程序设计 ☆程序中的批处理、脚本、注释 建立批处理时,应当注意以下几点: 1 CREATEDEFAULT, CREATE PROCEDURE, CREATE RULE, CREATE TRIGGER及 CREATEⅤIEW语句不能与其他语句 放在一个批处理中 2、不能在删除一个对象之后,在同一批处理中再次引用这个对象。 3、不能在一个批处理中引用其他批处理中所定义的变量。 4、不能把规则和默认值绑定到表字段或用户自定义数据类型之后, 立即在同一个批处理中使用它们。 5、不能定义一个 CHECK约束之后,立即在同一个批处理中使用该 约束。 6、不能在修改表中的一个字段名之后,立即在同一个批处理中引用 新字段名。 7、如果一个批处理中的第一个语句是执行某个存储过程的 EXECUTE语句,则 EXECUTE关键字可以省略;如果该句不是第 一语则必须使用 EXECUTE关键字,或者省写为“EXEC
第十一章 SQL程序设计 ❖ 程序中的批处理、脚本、注释 建立批处理时,应当注意以下几点: 1、CREATE DEFAULT,CREATE PROCEDURE,CREATE RULE,CREATE TRIGGER及CREATE VIEW语句不能与其他语句 放在一个批处理中。 2、不能在删除一个对象之后,在同一批处理中再次引用这个对象。 3、不能在一个批处理中引用其他批处理中所定义的变量。 4、不能把规则和默认值绑定到表字段或用户自定义数据类型之后, 立即在同—个批处理中使用它们。 5、不能定义一个CHECK约束之后,立即在同一个批处理中使用该 约束。 6、不能在修改表中的一个字段名之后,立即在同一个批处理中引用 新字段名。 7、如果一个批处理中的第一个语句是执行某个存储过程的 EXECUTE 语句,则EXECUTE关键字可以省略;如果该语句不是第 一个语句,则必须使用EXECUTE关键字,或者省写为“EXEC
第十一章SQL程序设计 ☆程序中的批处理、脚本、注释 2、脚本 脚本是存储在文件中的一系列SQL语句,即一系列按顺序提交的 批处理。 Transact-SQL脚本中可以包含一个或多个批处理。GO语句是批 处理结束的标志。如果没有GO语句,则将它作为单个批处理执行。 使用脚本可以将创建和维护数据库时的操作步骤保存为一个磁盘文件 。将 Transact-SQL语句保存为脚本文件,不仅可以建立起可再用的模 块化代码,还可以在不同计算机之间传送 Transact-SQL语句,使两台 计算机执行同样的操作。 脚本可以在查询分析器中执行,也可以在isq减或oq实用程序中执 行。査询分析器是建立、编辑和使用脚本的一个最好的环境。在查询 分析器中,不仅可以新建、保存、打开脚本文件,而且可以输入和修 改 Transact-SQL语句,还可以通过执行 Transact-SQL语句来查看脚本 的运行结果,从而检验脚本内容的正确性
第十一章 SQL程序设计 ❖ 程序中的批处理、脚本、注释 2 、脚本 脚本是存储在文件中的一系列SQL语句,即一系列按顺序提交的 批处理。 Transact-SQL脚本中可以包含一个或多个批处理。GO语句是批 处理结束的标志。如果没有GO语句,则将它作为单个批处理执行。 使用脚本可以将创建和维护数据库时的操作步骤保存为一个磁盘文件 。将Transact-SQL语句保存为脚本文件,不仅可以建立起可再用的模 块化代码,还可以在不同计算机之间传送Transact-SQL语句,使两台 计算机执行同样的操作。 脚本可以在查询分析器中执行,也可以在isql或osql实用程序中执 行。查询分析器是建立、编辑和使用脚本的一个最好的环境。在查询 分析器中,不仅可以新建、保存、打开脚本文件,而且可以输入和修 改Transact-SQL语句,还可以通过执行Transact-SQL语句来查看脚本 的运行结果,从而检验脚本内容的正确性
第十一章SQL程序设计 ☆程序中的批处理、脚本、注释 3、注释 注释是指程序中用来说明程序内容的语句,它不能执行且不参与 程序的编译。注释用于语句代码的说明,或暂时禁用的部分语句。为 程序加上注释不仅能增强程序的可读性,而且有助于日后的管理和维 护 1)行内注释。如果整行都是注释而并非所要执行的程序行,则该行可用行 内注释,语法为: -注释语句:这种注释形式用来标志一行注释,可以与要执行的代码处在同 行,也可以另起一行。从双连字符(--)开始到行尾均为注释。 2)块注释如果要给程序所加的注释内容较长,则可使用块注释,语法为 /注释语句*/:这种注释形式用来标志多行注释,可以与要执行的代码处在同 行,也可以另起一行,甚至可以放在可执行代码内。对于多行注释,必须 使用开始注释字符对()开始注释,使用结束注释字符对()结束释 /和*之间的全部内容都是注释部分。注意多行注释不能跨越批处理,整个注 释必须包含在一个批处理中
第十一章 SQL程序设计 ❖ 程序中的批处理、脚本、注释 3、 注释 注释是指程序中用来说明程序内容的语句,它不能执行且不参与 程序的编译。注释用于语句代码的说明,或暂时禁用的部分语句。为 程序加上注释不仅能增强程序的可读性,而且有助于日后的管理和维 护。 1)行内注释。如果整行都是注释而并非所要执行的程序行,则该行可用行 内注释,语法为: --注释语句:这种注释形式用来标志一行注释,可以与要执行的代码处在同 一行,也可以另起一行。从双连字符(- -)开始到行尾均为注释。 2)块注释如果要给程序所加的注释内容较长,则可使用块注释,语法为: /*注释语句*/:这种注释形式用来标志多行注释,可以与要执行的代码处在同 一行,也可以另起一行,甚至可以放在可执行代码内。对于多行注释,必须 使用开始注释字符对(/*)开始注释,使用结束注释字符对(*/)结束注释, */和*/之间的全部内容都是注释部分。注意多行注释不能跨越批处理,整个注 释必须包含在一个批处理中