78ee000e编程应用 如,以下代码包含三个批: USE MyDB GO /*第1批未* CREATE VIEW V STUDENTS AS SELECT编号,姓名 FROM Readers WHERE读者类型=学生 GO /*第2批未*/ SELECT *k FROM V STUDENTS GO /*第3批未*/ 2021/1/21
第7章 SQL Server2000 Transact-SQL 编程和应用 2021/1/21 如,以下代码包含三个批: USE MyDB GO /*第1批未*/ CREATE VIEW V_STUDENTS AS SELECT 编号,姓名 FROM Readers WHERE 读者类型=’学生’ GO /*第2批未*/ SELECT * FROM V_STUDENTS GO /*第3批未*/
78ee000e编程应用 因为 SQL Server为一个批生成一个单独的执行计划,所以 个批本身应该是完整的,不能在一个批中引用其它批定义的 变量,也不能将注释从一个批开始,在另一个批中结束。 如果批中的语句出现编译错误,那么将不能生成执行计划 批中的任何一个语句都不会执行 批有如下限制: CREATE DEFAULT CREATE PROCEDURE CREATE RULE CREATE TRIGGER、 CREATE VIEW语句不能与其它语句位于同 个批中。 ■不能在一个批中修改一个表的结构,然后在同一个批中引用 刚修改的新列。 ■如果批的第一条语句是 EXECUTE,则 EXECUTE关键字可以省略 否则,不能省略。 2021/1/21
第7章 SQL Server2000 Transact-SQL 编程和应用 2021/1/21 因为SQL Server为一个批生成一个单独的执行计划,所以 一个批本身应该是完整的,不能在一个批中引用其它批定义的 变量,也不能将注释从一个批开始,在另一个批中结束。 如果批中的语句出现编译错误,那么将不能生成执行计划, 批中的任何一个语句都不会执行。 批有如下限制: ▪ CREATE DEFAULT 、 CREATE PROCEDURE 、 CREATE RULE 、 CREATE TRIGGER、CREATE VIEW语句不能与其它语句位于同 一个批中。 ▪ 不能在一个批中修改一个表的结构,然后在同一个批中引用 刚修改的新列。 ▪ 如果批的第一条语句是EXECUTE,则EXECUTE关键字可以省略。 否则,不能省略
78ee000e编程应用 脚本 脚本是一系列顺序提交的批。脚本可以直接在查询分析器等 工具中输入并执行,也可以保存在文件中,再由查询分析器等 工具执行。 个脚本可以包含一个或多个批,脚本中的G0命令标志一个 批的结束,如果一个脚本没有包含任何G0命令,那么它被视为 一个批。 脚本可用于 将服务器上创建一个数据库的步骤永久地记录在脚本文件中 ■将语句保存为脚本文件,从一台计算机传递到另一台计算机, 这样可以方便地使两台计算机执行同样的操作。 2021/1/21
第7章 SQL Server2000 Transact-SQL 编程和应用 2021/1/21 ▪ 脚本 脚本是一系列顺序提交的批。脚本可以直接在查询分析器等 工具中输入并执行,也可以保存在文件中,再由查询分析器等 工具执行。 一个脚本可以包含一个或多个批,脚本中的GO命令标志一个 批的结束,如果一个脚本没有包含任何GO命令,那么它被视为 一个批。 脚本可用于: ▪ 将服务器上创建一个数据库的步骤永久地记录在脚本文件中。 ▪ 将语句保存为脚本文件,从一台计算机传递到另一台计算机, 这样可以方便地使两台计算机执行同样的操作
78ee000e编程应用 ◆局部变量 局部变量是用户自定义的变量。使用范围是定义它的批、存储 过程或触发器。局部变量前面通常加上@标记。 ■ DECLARE定义局部变量,并指明此变量的数据类型 ■SET或 SELECT命令对其赋值。局部变量的数据类型可以是用户自 定义的数据类型,也可以是系统数据类型,但不能将其定义为 TEXT或 IMAGE数据类型。 定义局部变量的语法如下 deClare @local variable data type [, @local variable data type DECLARE命令可以定义多个局部变量,之间用逗号分隔 2021/1/21
第7章 SQL Server2000 Transact-SQL 编程和应用 2021/1/21 ❖ 局部变量 局部变量是用户自定义的变量。使用范围是定义它的批、存储 过程或触发器。局部变量前面通常加上@标记。 ▪ DECLARE 定义局部变量,并指明此变量的数据类型 ▪ SET或SELECT命令对其赋值。局部变量的数据类型可以是用户自 定义的数据类型,也可以是系统数据类型,但不能将其定义为 TEXT或IMAGE数据类型。 ▪ 定义局部变量的语法如下: DECLARE @local_variable data_type [, @local_variable data_type]… DECLARE命令可以定义多个局部变量,之间用逗号分隔
78ee000e编程应用 用 SELECT为局部变量赋值的语法如下: SELECT @variable name=expression select statement L, Variable name=expression select statement L FROM list of tables L WHERE expression LGROUP BY.. I LHAVING.. I LORDER BYI 说明: (1) SELECT命令可以将一个表达式的值赋给一个局部变量,也可 以将一个 SELECT査询的结果赋给一个局部变量。 2)SEEC命令通常返回一个值给局部变量。当返回多个值,则 变量的值为最后一个返回值。如果 SELECT命令没有返回值,则 局部变量保持原值不变,如 expression为一个分级查询且没有 返回值时,变量被置为NULI 2021/1/21
第7章 SQL Server2000 Transact-SQL 编程和应用 2021/1/21 ▪ 用SELECT为局部变量赋值的语法如下: SELECT @variable_name=expression select statement [,@variable_name=expression select statement] [FROM list of tables] [WHERE expression] [GROUP BY...] [HAVING...] [ORDER BY] 说明: (1)SELECT命令可以将一个表达式的值赋给一个局部变量,也可 以将一个SELECT查询的结果赋给一个局部变量。 (2)SELECT命令通常返回一个值给局部变量。当返回多个值,则 变量的值为最后一个返回值。如果SELECT命令没有返回值,则 局部变量保持原值不变,如expression为—个分级查询且没有 返回值时,变量被置为NULL