SQL Server的T-SQL II

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
NINGBO University of Technology
在批中使用的T-SQL语句要遵从以下规定:
对PROCEDURE, RULE, DEFAULT, TRIGGER及 VIEW进行定义的语句,不能与其它T-SQL语句 在同一批中使用(应当独自提供给SQL Server);
用USE来指定当前数据库,它必须在一个批中 提交;
7.1 SQL Server的流程控制语言(自学)
7.1.1 批处理、脚本和变量
当要完成的任务不能由单独的T-SQL语句来完 成时,SQL Server提供了批、脚本、存储过程和 触发器这四种方式来组织多条T-SQL语句。 1、批和脚本 1)批是由一条或多条T-SQL语句组成的语句集, 这些语句一起提交并作为一个整体来执行,在所 有的批中都使用GO作为结束的标志。
SQL Server提供的全局变量分为两类: (1)与当前的SQL Server连接有关的全局变量,
与当前的处理有关的全局变量。 (2)与整个SQL Server系统有ogy
例4 应用三个全局变量的例子。 /* 第一类全局变量 */ -- @@rowcount表示最近一个语句影响的行数 PRINT @@rowcount -- @@error保存最近执行操作的错误状态 PRINT @@error /* 第二类全局变量 */ -- @@version表示SQL Server的版本信息 PRINT @@version 例5 将全局变量的值赋给局部变量,请读者利用
不能在同一个批中修改完一个表的结构后,马 上引用刚修改的新列;
在同一个批中,不允许刚删除(DROP)一个对象 后,又马上重新建立(CREATE)它;
如果批的第一条语句是EXECUTE(执行),则 EXECUTE关键字可以省略,否则不能省略。
NINGBO University of Technology
[ , <局部变量名2><数据类型2>, …] 局部变量名被声明后,系统自动给它们初始 化为NULL。
NINGBO University of Technology
(2)局部变量的赋值
SET <局部变量名>= <表达式>
其中表达式是与局部变量的数据类型相匹配 的表达式,赋值语句的作用是将表达式的值赋给 指定的局部变量。
2)脚本是一系列顺序提交的批,如果一个脚本没 有包含任何GO命令,则它整个被看作是一个批。
象例1和例2中的二段代码都是脚本,脚本可 以在查询分析器等工具中输入并执行,也可以保 存在文件中,当需要时由查询分析器等工具打开 并执行。
脚本可以用于:①将服务器上创建一个数据 库的步骤永久地记录在脚本文件中;②将语句保 存为脚本文件,从一台计算机传递到另一台计算 机,这样可以方便地使两台计算机执行同样的操 作。
NINGBO University of Technology
2、局部变量和全局变量 1)局部变量
局部变量是以@开头的用户定义的变量, 它用DECLARE语句声明,用户可以在与定义它 的DECLARE语句的同一批中用SET语句为其赋值。 局部变量的使用范围是定义它的批、存储过程和 触发器。 (1)局部变量的命名 DECLARE <局部变量名1><数据类型1>
birthday= @student_birthday GO
NINGBO University of Technology
2)全局变量 全局变量是以@@开头的SQL Server系统提
供并赋值的变量。 用户不能建立全局变量,也不能用SET语句
来修改全局变量的值,但可以将全局变量的值赋 给局部变量,以便保存和处理。
from student where birthday> ' 2001-01-01' GO Select * From stud_2001_later Where email like '%@' GO
NINGBO University of Technology
例2 以下例子也包含三个批,请理解它的含义。 Use teaching GO Select sno,sname,birthday,email into stud_computer from student where spec='计算机' GO Select * From stud_computer Where birthday>‘2001-01-01' GO
第7章 SQL Server 的T-SQL II Chapter 7 T-SQL II of SQL Server
本章重点 SQL Server的流程控制语言 SQL Server的存储过程和触发器 SQL Server的数据库保护 典型案例分析
NINGBO University of Technology
当编译器读到GO时,它就会把GO前面所有 的语句当作一个批来处理,并包装成一个数据包 发送给服务器。
NINGBO University of Technology
例1 以下例子包含三个批,请读者理解它的含义。 Use teaching GO Create View stud_2001_later as select sno,sname,spec,email
例3 在同一批中先声明二个变量,并为它们赋 值,然后将它们用到SELECT语句的WHERE子句 中。
NINGBO University of Technology
Use teaching GO - - 声明二个局部变量 DECLARE @student_name varchar(20) ,
@student_birthday datetime - - 对二个局部变量赋值 SET @student_name='杨涛' SET @student_birthday=‘2001-01-01' - - 根据这二个局部变量的值进行查询 SELECT sno , sname , birthday FROM student WHERE sname=@student_name or
相关文档
最新文档