a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 225|回复: 1

[计算机四级] 2012年计算机等级考试四级数据库技术(12)

[复制链接]
发表于 2012-7-31 20:48:14 | 显示全部楼层 |阅读模式
1、 创建触发器的语句:CREATE TRIGGER,语法为:   CREATE TRIGGER 触发器名称1 S6 w+ N' F! N( B; R+ h1 Q4 ?
  ON {表名| 视图名}  K" R/ S$ E* p- e
  [WITH ENCRYPTION]# H0 V& B) Q4 m- ^( I. j
  {FOR |AFTER|INSTEAD OF}{[INSERT][,][DELETE][,][UPDATE]}
7 H$ \$ o( T% p  AS3 M3 N6 O8 |7 W% W' R' \, U2 P2 ]
  [{IF UPDATE(column)…}]
$ F1 r, c% ?) ]& C  SQL语句5 b! k" c# i  f3 m% [
  (1) 触发器名称在数据库中必须是惟一的;
3 b9 I' `: r# x) i+ w  (2) ON子句用于指定在其上执行触发器的表;% V3 Z- h' n( v$ R) `8 T
  (3) AFTER:指定触发器只有在引发的SQL语句中指定的操作都已成功执行,并且所有的约束检查也成功完成后,才执行此触发器,这种触发器称为后触发型触发器;
( ]2 k2 u0 l8 _. E  (4) FOR:作用同AFTER;
0 b. g/ M) K* _# T2 O  |) X  (5) INSTEAD OF:指定执行触发器而不是执行引发触发器执行的SQL语句,从而替代触发语句的操作,这种触发器称为前触发型触发器;% i1 l$ r0 c6 L, n" T. ~' {
  (6) INSTERT、DELETE或UPDATE是引发触发器执行的操作,若同时指定多个操作,则各操作之间用逗号分隔;% z- f/ u! L: a* y" m) e
  2、 创建触发器时,需要注意:1 j9 f' `; E- \
  (1) 在一个表上可以建立多个名称不同、类型各异的触发器,每个触发器可由三个操作引发;( ]/ G$ o6 H! T7 r- ]0 ]0 r
  (2) 大部分Transact-SQL语句都可用在触发器中,但也有一些限制;
; T/ h5 U& |, F5 v1 g' m: u* o  (3) 在触发器定义中,可以使用IF UPDATE子句测试在INSERT和UPDATE语句中是否对指定字段有影响;$ J4 Q  q8 f8 S
  (4) 通常不要在触发器中返回任何结果。9 p- r# ?! @/ u2 s3 w! i' H  D$ G
  3、 创建后触发型触发器
' n6 d0 r  m0 P) w  使用FOR或AFTER选项定义的触发器为后触发的触发器,即只有在引发触发器执行语句中指定的操作都已完成执行,并且所有的约束检查也成功完成后,才执行的触发器;1 ?! I" U3 t$ [: F$ ~/ i
+ F6 o( }5 c) L5 @9 J" v9 g! b
  
回复

使用道具 举报

 楼主| 发表于 2012-7-31 20:48:15 | 显示全部楼层

2012年计算机等级考试四级数据库技术(12)

4、 创建前触发型触发器</p>  使用INSTEAD OF 选项定义的触发器为前触发型触发器,在该触发器中,指定执行触发器而不是执行引发触发器执行的SQL语句,从而替代引发语句的操作。3 S# Y: X: V9 r+ N% D6 ~
  13.4 查看、修改及删除对象
# M8 K/ m# |1 m, i( g- X; k" @  13.4.1 查看对象3 N* j' H- {/ h/ _" R; e3 i
  对于创建好的存储过程、函数可通过企业管理器和查询分析器查看这些对象的代码;* F$ o, K( _' z0 B4 L6 ?
  13.4.2 修改对象0 x! S0 r5 i5 X, Q
  1、 修改存储过程:ALTER PROCEDURE9 x7 f3 x2 p; [7 r) f
  ALTER PROC 存储过程名4 g& ?3 _+ `3 h$ T- X% a& X6 _/ c
  [{@参数名 数据类型}[=default][OUTPUT]][,…n]
2 I8 B) s+ z$ e- D  AS! P# l+ Y+ L5 C9 X  a/ F
  SQL语句[…n]
9 {! ]5 v6 j( a# n- p. j  修改与定义的语句基本一致,只将CREARE PROC 改成ALTER PROC;
, z5 s2 M- P+ ]/ y0 f# r2 R$ M# R  2、修改用户自定义函数:
1 q  S- L5 I; f( s& l" t: x  修改与定义的语句基本一致,只将CREARE FUNCTION 改成ALTER FUNCTION;- }- I% t/ P1 }5 d
  3、修改触发器:; f; J, M7 p8 l1 D
  修改与定义的语句基本一致,只将CREARE TRIGGER 改成ALTER TRIGGER;1 }- X/ `9 Y3 g1 U
  13.4.3 删除对象  t0 k% S( y5 h$ m( D
  1、 删除存储过程:
8 S1 \) r, v9 u) x# i3 t+ i  DROP PROCEDURE {存储过程名}[,…n];7 w0 V+ o* C1 ~3 D! K5 \
  2、删除用户自定义函数" D, c- g; y- ^2 p; j; b0 [
  DROP FUNCTION {[拥有者名.]函数名}[,…n]
: I1 v5 ^) u2 n. w' D5 F; }  3、删除触发器
) C( M1 t8 i( P  d" Q1 }4 j  DROP TRIGGER {触发器名}[,…n]
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-16 16:45 , Processed in 0.185409 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表