数据库原理-6new_第1页
数据库原理-6new_第2页
数据库原理-6new_第3页
数据库原理-6new_第4页
数据库原理-6new_第5页
已阅读5页,还剩63页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、6.1 Transact-SQL6.2 存储过程6.3 触发器6.4 数据库应用系统结构6.5 ODBC、JDBC简介 Transact-SQL是是Microsoft的一种编程语言,的一种编程语言,具有所有语言所具有的要素:具有所有语言所具有的要素:数据类型数据类型常量和变量常量和变量函数函数表达式表达式流程控制语句流程控制语句不仅提供对不仅提供对SQL标准的支持,而且包含了标准的支持,而且包含了Microsoft对对SQL的一系列扩展。的一系列扩展。一、常量 常量常量是在程序运行中值不发生变化的量,是在程序运行中值不发生变化的量,常量的格式取决于它所表示的数据类型。根据常常量的格式取决于它所

2、表示的数据类型。根据常见的数据类型,分为见的数据类型,分为1、字符串常量 字符串常量分为字符串常量分为ASCII字符串常量和字符串常量和Unicode字字符串常量。符串常量。ASCII字符串常量是用字符串常量是用单引号括起来单引号括起来,由,由ASCII字符构成的字符串;字符构成的字符串;Unicode字符串常量前面字符串常量前面有一个有一个N,代表国际语言。每个,代表国际语言。每个ASCII字符由一个字字符由一个字节存储,而每个节存储,而每个Unicode字符需要两个字节的存储空字符需要两个字节的存储空间。间。ASCII字符串常量字符串常量Have a nice day! 马翔马翔 2563

3、 如果单引号是字符串的一部分,则如果单引号是字符串的一部分,则需要用两个单引号表示。需要用两个单引号表示。Jones homeUnicode字符串常量字符串常量NHave a nice day! N马翔马翔2、整型常量 整型常量由数字整型常量由数字0-9以及以及+/-号组成的有意义的号组成的有意义的串。如:串。如:123、-9811、+893、实型常量 实型常量有定点和浮点两种表示形式。实型常量有定点和浮点两种表示形式。定点实型常量定点实型常量 由数字由数字0-9、小数点和正负号组成有意义的串。、小数点和正负号组成有意义的串。如:如:1.0、3467.584。浮点实型常量浮点实型常量 由数字由

4、数字0-9、小数点、正负号和、小数点、正负号和字母字母E组成有意组成有意义的串。如:义的串。如:0.68E+3、1E10、-23E2。4、货币常量 货币常量是以货币常量是以$符号符号为前缀的整型或实型常量,为前缀的整型或实型常量,用来表示货币值,精度为用来表示货币值,精度为4位小数。如位小数。如$100、-$52、$16.37。5、日期时间常量 日期常量是用日期常量是用单引号单引号括起来的有效的日期和时间括起来的有效的日期和时间组成的字符串。组成的字符串。常见的常见的日期格式日期格式September 1,2007September 1,2007、 20072007年年9 9月月1 1号号 、

5、 2007-2007-09-0109-01、 09/01/200709/01/2007、 2007090120070901常见的常见的时间格式时间格式 14:12:0014:12:00、 02:12PM02:12PM二、变量 变量就是在程序运行中值会发生变化的量。变变量就是在程序运行中值会发生变化的量。变量可用于存放输入的值以及保存计算结果等。量可用于存放输入的值以及保存计算结果等。SQL Server有两类变量:有两类变量: 1.全局变量。全局变量。 2.局部变量。局部变量。1、全局变量 全局变量是全局变量是SQL Server管理的变量,管理的变量,用户用户不能建立全局变量不能建立全局变量

6、,可以,可以查看全局变量查看全局变量的值,但的值,但不能改变全局变量的值。不能改变全局变量的值。 全局变量分为两类,一类反映全局变量分为两类,一类反映SQL Server系统的全局变量,另一类反映与一个连接有关的系统的全局变量,另一类反映与一个连接有关的全局变量。全局变量。 全局变量的特征全局变量的特征是变量名前是变量名前2个符号必须个符号必须是是。SQL Server提供了大约提供了大约30多个全局变量。多个全局变量。2、局部变量 局部变量是在一定范围内有意义的变量,由局部变量是在一定范围内有意义的变量,由用用户建立和使用户建立和使用。局部变量的作用范围一般为批处理、。局部变量的作用范围一般

7、为批处理、存储过程、触发器。存储过程、触发器。 局部变量的命名要求第一个字符必须是局部变量的命名要求第一个字符必须是,由,由字母、数字、下划线等字符组成,字母、数字、下划线等字符组成,不能与不能与SQL Server的保留字、全局变量、存储过程、表等其它的保留字、全局变量、存储过程、表等其它数据库对象重名。数据库对象重名。 局部变量要用局部变量要用DECLARE语句声明语句声明。 可以用可以用SET或或SELECT语句给局部变量语句给局部变量赋值赋值。 局部变量可以出现在局部变量可以出现在SQL语句中。语句中。三、运算符 运算符完成运算功能。运算符完成运算功能。SQL Server提供了丰富提

8、供了丰富的运算符,绝大部分的含义同一般的编程语言,这的运算符,绝大部分的含义同一般的编程语言,这里只是将它们罗列出来,以便于对照学习。里只是将它们罗列出来,以便于对照学习。1、算术运算符 算术运算符用于对两个数字型的量进行数学运算术运算符用于对两个数字型的量进行数学运算。算术运算符有:算。算术运算符有:+(加)、(加)、-(减)、(减)、*(乘)、(乘)、/(除)、(除)、%(取余)。其中,(取余)。其中,+和和-还可以作为一元还可以作为一元运算符,也可以对运算符,也可以对datatime和和smalldatatime类型的类型的数据进行运算。数据进行运算。三、运算符2、比较运算符 比较运算符

9、用于比较两个表达式的值之间的关比较运算符用于比较两个表达式的值之间的关系,结果为布尔值,分为系,结果为布尔值,分为TRUE(真)、(真)、FALSE(假)、(假)、UNKNOWN(未知)。(未知)。 比较运算符有:比较运算符有:=(等于)、(等于)、(小于)、(小于)、(大于)、(大于)、=(大于等于)、(大于等于)、(不等于,另外一个写法是!(不等于,另外一个写法是!=)、!)、!(不大(不大于)、!于)、!、=、=、 、!=、!、!位运算符:位运算符:、&、|逻辑运算符:逻辑运算符:NOT、AND、OR四、函数 在在Transact-SQL语言中,函数被用来执行一语言中,函数被用来

10、执行一些特殊的运算以支持些特殊的运算以支持SQL Server的标准命令。的标准命令。SQL Server支持两种函数类型:支持两种函数类型:内置函数内置函数和用户和用户定义函数。其内置函数十分丰富,具体的请参考定义函数。其内置函数十分丰富,具体的请参考其它书籍。其它书籍。五、流程控制语句语句语句功能功能BEGINEND定义语句块。定义语句块。IFELSE条件选择语句,条件成立执行条件选择语句,条件成立执行IF后语句(第一个分支),否则后语句(第一个分支),否则执行执行ELSE后语句。后语句。CASE语句语句分支处理语句,表达式可根据条件返回不同值。分支处理语句,表达式可根据条件返回不同值。W

11、HILE循环语句,重复执行命令行或程序块。循环语句,重复执行命令行或程序块。WAITFOR设置语句执行的延迟时间。设置语句执行的延迟时间。BREAK循环跳出语句。循环跳出语句。CONTINUE重新启动循环语句。跳过重新启动循环语句。跳过CONTINUE后语句,回到后语句,回到WHILE循循环的第一行命令。环的第一行命令。GOTO无条件转移语句。无条件转移语句。RETURN无条件返回语句。无条件返回语句。表6.2 流程控制语句及功能1、语句块 BEGINEND语句能够将多个语句能够将多个Transact-SQL语句组合成一个语句块,将其语句组合成一个语句块,将其视为一个单元处理视为一个单元处理。

12、在条件语句和循环等控制流程语句中,当符合特在条件语句和循环等控制流程语句中,当符合特定条件便要执行两个或者多个语句时,就需要使定条件便要执行两个或者多个语句时,就需要使用用BEGINEND语句。语句。格式:格式:BEGIN 语句语句1 语句语句2 语句语句n END2、IF ELSE语句 IFELSE语句是条件判断语句,用来判断语句是条件判断语句,用来判断当某一条件成立时执行某段程序,条件不成立时当某一条件成立时执行某段程序,条件不成立时执行另一段程序。允许嵌套。执行另一段程序。允许嵌套。格式:格式:IF ELSE 条件表达式条件表达式 例 21 从从SC数据表中求出学号为数据表中求出学号为2

13、007012同学的同学的平均成绩,如果此平均成绩大于或等于平均成绩,如果此平均成绩大于或等于60分,则分,则输出输出pass信息。信息。if (SELECT AVG(Grade) FROM SC WHERE Sno=2007012)=60)beginprint passend例 22 判断数值大小,打印运算结果。判断数值大小,打印运算结果。declare q int,r int,s intselect q = 4,r = 5,s = 6 -为三个变量赋值为三个变量赋值if q rprint qrelse if r sprint rs elseprint sr3、CASE语句 CASE语句可以计

14、算多个条件式,并返回其语句可以计算多个条件式,并返回其中一个符合条件的表达式的结果。按照使用形式中一个符合条件的表达式的结果。按照使用形式的不同,可以分为的不同,可以分为简单简单CASECASE语句语句搜索搜索CASECASE语句语句1.简单简单CASE语句语句格式:格式: CASE WHEN THEN WHEN THEN ELSE END2.搜索搜索CASE语句语句格式:格式:CASEWHEN THEN WHEN THEN ELSE END例 23 输出选修输出选修1156号课程的成绩(分为优、良、号课程的成绩(分为优、良、中、及格、不及格五个等级)。中、及格、不及格五个等级)。select

15、 Sno, 成绩成绩=casewhen Grade=60 and Grade=70 and Grade=80 and Grade=90 then 优优endfrom SCwhere Cno=11564、WHILE语句 WHILE语句通过布尔表达式设置重复执行语句通过布尔表达式设置重复执行SQL语句或语句块的循环条件。语句或语句块的循环条件。WHILE命令在命令在设定的条件成立时会重复执行设定的条件成立时会重复执行SQL语句或程序块。语句或程序块。可以使用可以使用BREAK和和CONTINUE语句在循环内部语句在循环内部控制控制WHILE循环中语句的执行。循环中语句的执行。格式:格式:WHILE

16、 BEGIN BREAK CONTINUE END例 24 计算从计算从1加到加到100的值。的值。declare s int,i intset i=0set s=0while i=100beginset s=s+iset i=i+1endprint 1+2+100= + cast(s as char(25)5、RETURN语句 RETURN语句用于在任何时候从过程、批处理语句用于在任何时候从过程、批处理或语句块中结束当前程序、无条件退出,而不执行或语句块中结束当前程序、无条件退出,而不执行位于位于RETURN之后的语句,返回到上一个调用它的之后的语句,返回到上一个调用它的程序,在括号内可指定

17、一个返回值。程序,在括号内可指定一个返回值。格式:格式:RETURN整数值整数值6、WAITFOR语句 WAITFOR语句用于暂时停止执行语句用于暂时停止执行SQL语语句、语句块或者存储过程等,直到所设定的时间句、语句块或者存储过程等,直到所设定的时间已过或者所设定的时间已到才继续执行。已过或者所设定的时间已到才继续执行。格式:格式:WAITFOR DELAY | TIME | ERROREXIT | PROCESSEXIT | MIRROREXIT例例 25 等待等待1 小时小时2 分零分零3 秒后才执行秒后才执行SELECT 语句。语句。waitfor delay 01:02:03sele

18、ct * from SC等到等到11点点12分才执行分才执行select语句语句waitfor time 11:12:00select * from SC7、批处理 一个一个批处理批处理是一组语句,以是一组语句,以GO作为结束标作为结束标志。志。SQL Server将批处理作为一个工作单位,批将批处理作为一个工作单位,批处理中的所有语句处理中的所有语句作为一个整体作为一个整体进行词法分析、进行词法分析、语法分析,进行编译和执行。在分析阶段,若某语法分析,进行编译和执行。在分析阶段,若某一条语句有错误,则不会执行批处理中的任何语一条语句有错误,则不会执行批处理中的任何语句。在执行批处理时,某条语

19、句在执行中出错,句。在执行批处理时,某条语句在执行中出错,不会影响到其它语句的执行。不会影响到其它语句的执行。SQL Server规定有规定有些语句必须是批处理中的唯一一条语句或者是第些语句必须是批处理中的唯一一条语句或者是第一条语句,如,一条一条语句,如,一条DDL语句必须作为一个批处语句必须作为一个批处理。理。7、批处理、批处理 例例 26 下面的批处理由两条语句组成下面的批处理由两条语句组成select *from studentinsert into student(Sno,Sname)values(2007002,王亮王亮)go7、批处理 例 27 局部变量的作用范围是批处理局部变量

20、的作用范围是批处理为变量为变量studentName赋值,然后在赋值,然后在SELECT语句中引用,要求赋值和引用在一个批语句中引用,要求赋值和引用在一个批处理中。处理中。DECLARE studentName varchar(12) -声明变量声明变量SET studentName = 马马 + 翔翔 -为变量赋值为变量赋值SELECT *FROM StudentWHERE Sname = studentName -引用变量引用变量GO SQL SQL语言是高度非过程化的语言,有它的优语言是高度非过程化的语言,有它的优点就是非常简洁,容易学,但是对于程序设计来点就是非常简洁,容易学,但是对于

21、程序设计来说,如果只有非过程化的语言,有些功能它没办说,如果只有非过程化的语言,有些功能它没办法很好的完成,解决办法有几种:法很好的完成,解决办法有几种:嵌入式嵌入式SQLSQL存储模块存储模块存储过程存储过程或函数或函数调用接口调用接口 创建存储过程前的注意事项:创建存储过程前的注意事项: 不能将不能将 CREATE PROCEDURE 语句与其它语句与其它 SQL 语句组合到单个批处理中。语句组合到单个批处理中。 创建存储过程的权限默认属于数据库所有者,创建存储过程的权限默认属于数据库所有者,该所有者可将此权限授予其它用户。该所有者可将此权限授予其它用户。 存储过程是数据库对象,其名称必须

22、遵守标存储过程是数据库对象,其名称必须遵守标识符规则。识符规则。 只能在当前数据库中创建存储过程。只能在当前数据库中创建存储过程。 一个存储过程的最大尺寸为一个存储过程的最大尺寸为128M。 在在SQL Server中,可以使用三种方法创建存中,可以使用三种方法创建存储过程储过程 : 1. 利用利用SQL Server 企业管理器创建存储过程。企业管理器创建存储过程。 2.使用创建存储过程向导创建存储过程。使用创建存储过程向导创建存储过程。 3.使用使用CREATE PROCEDURE命令命令创建存储创建存储过程。过程。格式:格式: CREATE PROCEDURE 过程名过程名 参数参数1,

23、 参数参数2, . AS 变量声明变量声明; BEGIN 语句组;语句组; END;参数的名字、数据类型、默认值。如果是参数的名字、数据类型、默认值。如果是输出参数输出参数(将(将值从存储过程反馈到调用者)值从存储过程反馈到调用者)需要紧跟需要紧跟OUTPUT关键字关键字。WITH RECOMPILE 代表在执行存储过程时要代表在执行存储过程时要重新编重新编译译;WITH ENCRYPTION表示把创建存储过程的语句以表示把创建存储过程的语句以加加密密的形式存放在数据库中;的形式存放在数据库中;WITH RECOMPILE , ENCRYPTION的含义是以加密的含义是以加密的形式存放语句,在

24、执行时重新编译。的形式存放语句,在执行时重新编译。 过程:首先对过程:首先对CREATE PROCEDURE语句语句进行语法分析,分析通过后,则将进行语法分析,分析通过后,则将CREATE PROCEDURE语句的源代码存放到系统表语句的源代码存放到系统表syscomments,过程名作为一个数据库对象保存,过程名作为一个数据库对象保存在系统表在系统表sysobjects;然后对源代码进行优化和;然后对源代码进行优化和编译,将可执行代码放置在过程高速缓存中,在编译,将可执行代码放置在过程高速缓存中,在需要的时候可以立刻使用它。如图需要的时候可以立刻使用它。如图7.5。语法分析CreationE

25、xecution(First OR Recompile存储过程名进入sysobjects源代码进入syscomments表编译后的计划放在过程高速缓存中优化编译图7.5 存储过程的建立过程 例 28 建立一个可以给建立一个可以给Student表中所有学生年龄增加表中所有学生年龄增加1岁的过程岁的过程addAllSageCREATE PROCEDURE addAllSageASBEGIN UPDATE Student SET Sage = Sage + 1EndGoexecute addAllSagego修改过程修改过程Alter PROCEDURE addAllSageASBEGIN upda

26、te student set sage=sage+1END可写任意语句内容可写任意语句内容例 29 建立一个可以给某个学院全体学生年龄增加建立一个可以给某个学院全体学生年龄增加1岁的岁的过程过程addDeptSageCREATE PROCEDURE addDeptSageSdeptvarchar(30) -输入参数,用于选择学院输入参数,用于选择学院ASBEGIN UPDATE Student SET Sage = Sage + 1 WHERE Sdept = SdeptENDGOexecute addDeptSage go例 30 建立一个可以给某个学院全体学生年龄增加建立一个可以给某个学院

27、全体学生年龄增加1岁,并且报告更改人数的过程岁,并且报告更改人数的过程addDeptSageCountCREATE PROCEDURE addDeptSageCount Sdept varchar(30),rows int OUTPUT -输出参数,年龄被修改的学生人数输出参数,年龄被修改的学生人数ASBEGIN UPDATE Student SET Sage = Sage + 1 WHERE Sdept = Sdept SET rows = ROWCOUNT -全局变量的值记录了被修改的元全局变量的值记录了被修改的元组的个数组的个数ENDGOdeclare tid varchar(30),o

28、ut intset tid=计算机系计算机系exec addDeptSageCount tid,out OUTPUTprint outgo 例 31 建立一个可以给某个学院全体学生年龄增加建立一个可以给某个学院全体学生年龄增加1岁,报告更改人岁,报告更改人数的过程数的过程addDeptSageCount,并返回存储过程的执行状态,并返回存储过程的执行状态CREATE PROCEDURE addDeptSageCount Sdept varchar(30),rows int OUTPUT -输出参数,年龄被修改的学生人数输出参数,年龄被修改的学生人数ASBEGIN UPDATE Student

29、SET Sage = Sage + 1 WHERE Sdept = Sdept SET rows = ROWCOUNT RETURN ERROR -返回语句的执行状态返回语句的执行状态ENDGO在在SQL Server中,使用中,使用EXECUTE语句执行语句执行存储过程。存储过程。 格式:格式:EXECUTE返回状态变量返回状态变量=过程名过程名:分组:分组号号|过程名变量过程名变量参数名参数名=参数值参数值|参数变量参数变量OUTPUT|DEFAULT,.n WITH RECOMPILE 返回状态变量返回状态变量=:如果定义存储过程时,有:如果定义存储过程时,有RETURN语句,需要用一个

30、状态返回变量获取返语句,需要用一个状态返回变量获取返回码。回码。参数名参数名=参数值参数值|参数变量参数变量OUTPUT|DEFAULT:给输入变量赋值,定:给输入变量赋值,定义输出变量接受返回值。义输出变量接受返回值。从上面的格式中,可以发现有两种常用的调用方从上面的格式中,可以发现有两种常用的调用方法:法:方法方法1:procedure_name -必须是批处理中的第一条语必须是批处理中的第一条语句句GO方法方法2:EXECUTE procedure_name -不是批处理中不是批处理中的第一条语句,必须加的第一条语句,必须加EXECUTEGO例 32 执行过程执行过程addAllSage

31、SET IMPLICIT_TRANSACTIONS ON -采用隐式事务方式,采用隐式事务方式,addAllSage -按照方法按照方法1GOCOMMIT例 33 执行过程执行过程addDeptSageUSE S_C_SCGOSELECT * FROM StudentDECLARE Sdept varchar(30) -声明变量声明变量SET Sdept = 计算机计算机 -给变量赋值给变量赋值EXECUTE addDeptSage Sdept -将将Sdept -作为输入参数作为输入参数SELECT * FROM Student -察看修改后的结果察看修改后的结果GO例 34 执行过程执行过

32、程addDeptSageCountUSE S_C_SCGODECLARE Sdept varchar(30), -声明变量声明变量rows int SET Sdept = 计算机计算机 -给变量赋值给变量赋值EXECUTE addDeptSageCount Sdept, rows OUTPUT -rows作为输出变量作为输出变量PRINT rows -输出返回的值输出返回的值GO例 35 执行上例的过程的执行上例的过程的addDeptSageCount,并获取存储过程的执行状态并获取存储过程的执行状态USE S_C_SCGODECLARE Sdept varchar(30), -声明变量声明变

33、量rows int,code intSET Sdept = 计算机计算机 -给变量赋值给变量赋值EXECUTE code = addDeptSageCount Sdept, rows OUTPUT -rows作为输出变量作为输出变量PRINT rows -输出返回的值输出返回的值PRINT code -存储过程的执行状态存储过程的执行状态GO执行时:执行时: Execute 过程名过程名 goEXEC sp_databasesEXEC sp_renamedb Northwind,Northwind1USE StudentGOEXEC sp_tablesEXEC sp_columns Stude

34、nts EXEC sp_help StudentsEXEC sp_helpconstraint StudentsEXEC sp_helpindex Student_courseEXEC sp_helptext view_Students_Studentcourse EXEC sp_stored_procedures 修改数据库的名称修改数据库的名称(单用户访问单用户访问)列出当前系统中的数据库列出当前系统中的数据库当前数据库中查询的对象的列表当前数据库中查询的对象的列表返回某个表列的信息返回某个表列的信息查看表查看表students的信息的信息查看表查看表students的约束的约束查看表查看

35、表student_course的索引的索引查看视图的语句文本查看视图的语句文本查看当前数据库中的存储过程查看当前数据库中的存储过程演示:常用的存储过程演示:常用的存储过程 触发器是一种触发器是一种特殊类型的存储过程特殊类型的存储过程。一般的存储过程通过存储过程名称被直接一般的存储过程通过存储过程名称被直接调用,而触发器主要是通过当某个事件发调用,而触发器主要是通过当某个事件发生时自动被触发执行的。触发器可以用于生时自动被触发执行的。触发器可以用于SQL Server约束、默认值和规则的完整性约束、默认值和规则的完整性检查,还可以完成难以用普通约束实现的检查,还可以完成难以用普通约束实现的复杂功

36、能。复杂功能。 当对某一个表进行诸如当对某一个表进行诸如UPDATE、INSERT、DELETE这些操作时,这些操作时,SQL Server就会自动执行触发器所定义的就会自动执行触发器所定义的T-SQL语句,从而确保对数据的处理必须语句,从而确保对数据的处理必须符合由这些符合由这些T-SQL语句所定义的规则。语句所定义的规则。使用触发器有以下优点:使用触发器有以下优点:触发器是自动执行的。触发器是自动执行的。触发器可以通过数据库中的相关表进行层触发器可以通过数据库中的相关表进行层叠更改。叠更改。触发器可以强制限制。这些限制比用触发器可以强制限制。这些限制比用CHECK约束所定义的更复杂。约束所

37、定义的更复杂。触发器分类:触发器分类:AFTER触发器触发器INSTEAD OF触发器触发器l当在当在INSERT、UPDATE、DELETE语句语句执行之后执行之后才执行才执行DML触发器的操作时,这种触发器的类型就触发器的操作时,这种触发器的类型就是是AFTER触发器。触发器。AFTER触发器触发器只能在表上定义只能在表上定义。l如果希望使用触发器操作代替触发事件操作,可以如果希望使用触发器操作代替触发事件操作,可以使用使用INSTEAD OF类型的触发器。也就是说,类型的触发器。也就是说,INSTEAD OF触发器可以触发器可以替代替代INSERT、UPDATE和和DELETE触发事件的

38、操作。触发事件的操作。INSTEAD OF触发器触发器既可既可以建在表上,也可以建在视图上以建在表上,也可以建在视图上。通过在视图上建立。通过在视图上建立触发器,可以大大增强通过视图修改表中数据的功能。触发器,可以大大增强通过视图修改表中数据的功能。DML 触发器使用触发器使用 deleted 和和 inserted 逻辑表。它们逻辑表。它们在结构上和触发器所在的表的结构相同,在结构上和触发器所在的表的结构相同,SQL Server会自动创建和管理这些表。可以使用这两个会自动创建和管理这些表。可以使用这两个临时的驻留内存的表临时的驻留内存的表测试测试某些数据某些数据修改的效果修改的效果及及设设

39、置触发器操作的条件置触发器操作的条件。Deleted表表用于存储用于存储delete,update语句所影响的行语句所影响的行的副本。在执行的副本。在执行delete或或update语句时,行从触发器语句时,行从触发器表中删除,并传输到表中删除,并传输到deleted表中。表中。Inserted表表用于存储用于存储Insert或或update语句所影响的行语句所影响的行的副本,在一个插入或更新事务处理中,新建的行的副本,在一个插入或更新事务处理中,新建的行被同时添加到被同时添加到Inserted表和触发器表中。表和触发器表中。Inserted表表中的行是触发器表中新行的副本。中的行是触发器表中新行的副本。注意注意Deleted 与与Inserted分别表示触发事件的表分别表示触发事件的表“旧的一条记录旧的一条记录”和和“新的一条记录新的一条记录”。 一个数据库系统中有两个虚拟表用于存储在表一个数据库系统中有两个虚拟表用于存储在表中记录改动的信息,分别是:中记录改动的信息,分别是: 表中记录的操作表中记录的操作虚

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论