优秀精品课件文档资料 SQL Server 第7章 T-SQL 程序结构第7章 T-SQL 程序结构? Transact-SQL ( T-SQL )是微软公司对 ANSI SQL92 的扩展, 是 SQL Server 的核心组件之一。?针对 ANSI SQL92 可编程性和灵活性较弱等问题, T-SQL 对其进行了扩展,加入了程序流程控制结构(如 IF和 WHILE )、局部变量和其他一些功能。?利用这些功能,可以写出更为复杂的查询语句,或建立驻留在服务器上的基于代码的对象,如存储过程和触发器。虽然 SQL Server 也提供了自动生成查询语句的可视化用户界面, 但要编写具有实际用途的数据库应用程序,必须借助于 T- SQL 。?本章将介绍 T-SQL 程序结构,主要包括变量的定义和赋值、运算符、表达式、流程控制等内容。第7章 T-SQL 程序结构? 注释和变量? 运算符和表达式? 流程控制? 程序应用实例分析 注释和变量 T-SQL 程序的基本结构 ?批是一组 SQL 语句的集合,一个批以结束符 GO 而终结。批中的所有语句被一次提交给 SQL Server , SQL Server 将这些语句编译为一个执行单元在执行时全部执行。?注意:在执行批时: (1)只要有其中任一个 SQL 语句存在语法错误, SQL Server 将取消整个批内所有语句执行。(2)如果没有语法问题可以运行,但发生逻辑错误(如算术溢出),则可能导致停止批中当前语句及后面语句执行,或仅停止当前语句执行,后面继续。这样可能发生严重错误,所以批应位于一个事务之内。 注释和变量 u使用批的基本规则: (1)所有 CREATE 语句应单独构成一个批,不能在批中和其它 SQL 语句组合使用。( 不是所有的) (2)使用 ALTER TABLE 语句修改表结构后,不能在同一个批中使用新定义的列。(3) EXCUTE 语句为批中第一个语句时,可以省略 EXCUTE 关键字,否则,必须使用 EXCUTE 关键字。(4)批命令 GO 和 SQL 语句不能在同一行上。但在 GO 命令中可以包含注释。 u批命令 GO 并不是 SQL 的语句组成部分。它仅是作为批结束的标志。当编译器读到 GO 时,会把它前面的所有语句打成一个数据包一起发给服务器。 注释和变量 u正确批处理的例子: USE 教学管理 GO CREATE VIEW sub_student AS SELECT sno,sname FROM STUDENT GO SELECT * FROM sub_student GO 注释和变量 u不正确批处理的例子 1: USE 教学管理 CREATE VIEW sub_student AS SELECT sno,sname FROM STUDENT GO SELECT * FROM sub_student GO u错误的原因在于将选择数据库与创建视图放在了同一个批中,前面说过 CREATE VIEW 必须单独在一个批中。 注释和变量 u不正确批处理的例子 2: USE 教学管理 GO CREATE TABLE mytab (name nvarchar(20),pric tinyint) GO INSERT INTO mytab (name,pric) VALUES ( ‘ e ’, 3) INSERT INTO mytab (name,pric) VALUES ( ‘ e ’, 3000) --3000 超过 tinyint 类型 GO u第2个插入语句插入时出错,只产生部分数据(容易成为垃圾数据)。为了避免这种情况发生需要用事务保证批中的命令要么全做,要么全不做。 T-SQL 程序的基本结构 u一个 T-SQL 程序包含若干个以 BEGIN TRANSACTION 开始、 MIT (提交)或 ROLLBACK (回滚)结束的事务, 一个事务又包含若干个以 GO 结束的批处理,一个批处理包含若干条 T-SQL 语句。因此 T-SQL 程序的基本结构为: { BEGIN TRANSACTION { T-SQL 语句[ … n] GO }[ … n] { COMMIT | ROLLBACK } }[ … n]
TSQL程序结构 来自淘豆网m.daumloan.com转载请标明出处.