触发器语法?语法格式如下:CREATE <触发器名> < BEFORE | AFTER >
创建触发器 是特殊的存储过程,自动执行,一般不要有返回神帆绝游姿值。
1、后触发器 (AFTER,FOR)先执行对应语句,后执行触发器中的语句。
2、前触发器 并没有真轿兄正的执行触发语句(insert,update,delete),而是执行触发后的语句。
3、行级触发器 (FOR EACH ROW) 在SQL server 中不存在。
扩展资料:
创建触发的语法
CREATE TRIGGER trigger_name --触发器名称
ON table_name--触发的表
[WITH ENCRYPTION]
FOR [DELETE, INSERT, UPDATE]--选择触发器类型
AS --触发后要做的语句
T-SQL语句
GO--结束标记
CREATE TRIGGER trigger_name
ON { table | view }
[ WITH ENCRYPTION ]
{
{ { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ DELETE ] [ UPDATE ] }
[ WITH APPEND ]
[ NOT FOR REPLICATION ]
AS
[ { IF UPDATE ( column )
[ { AND | OR } UPDATE ( column ) ]
[ ...n ]
| IF ( COLUMNS_UPDATED ( ) updated_bitmask )
column_bitmask [ ...n ]
} ]
sql_statement [ ...n ]
}
}
参数
trigger_name
是触发器的名称。触发器名称必须符合标识符规则,并且在数据库中必须唯一。可以选择是否指定触发器所有者名称。
Table | view
是在其上执行触发器的表或视图,有时称为触发器表或触发器视图。可以选择是否指定表或视图的所有者名称。
WITH ENCRYPTION
加密 syscomments 表中包含 CREATE TRIGGER 语句文本的条目。
【答案】:创建触发器的码拆升规则和限制:
用于创建触发器的迟老T-SQL语句是CREATE TRIGGER,语法格式如下。
CREATE TRIGGER trigger_name
ON table_name
[WITH ENCRYRTION]
{FOR| AFTER|INSTEAD OF}{[INSERT][,][UPDATE][,][DELETE]}
AS
sp|_statement
参数说明如下。
trigger_name:指定将要创建的触发器的名称。触发器的名称必须符合标识符命名规则,且触发器的名称必须在数据库中惟一;
table_name:指定与所创建的触发器关联的数据表;
WITH ENCRYPTION:加密触发器的文本;
FOR | AFTER | INSTEAD OF:如果指定FOR或者AFTER关键字,则创建AFTER类型触发器;如果指定INSTEAD OF关键字,表示创建INSTEAD OF触发器。
[INSERT][,][UPDATE][,][DELETE]:指定所创建的触发器由什么事件被御猛触发,至少要指定一个选项。AFTER触发器中每一种操作可以存在多个,INSTEAD OF触发器中每一种操作只能存在一个。
触发器是一种特殊的存储过程 下面是触发器的详细说明
ORACLE 触发器
ORACLE产生数腔肢备据库触发器的语法为
create [or replace] trigger 触发器名 触发时间 触发事件
on 表名
[for each row]
pl/sql 语句
其中
触发器名 触发器对象的名称 由于触发器是数据库自动执行 的 因此该名称伍毁只是一个名称 没有实质的用途
触发时间 指明触发器何时执行 该值可取
before 表示在数据库动作之前触发器执行
after 表示在数据库动作之后出发器执行
触发事件 指明哪些数据库动作会触发此触发器
insert 数据库插入会触发此触发器
update 数据库修改会触发此触发器
delete 数据库删除会触发此触发器
表 名 数据饥败库触发器所在的表
for each row 对表的每一行触发器执行一次 如果没有这一选项 则只对整个表执行一次
举例 下面的触发器在更新表auths之前触发 目的是不允许在周末修改表
create trigger auth_secure
before insert or update or delete file://对整表更新前触发
on auths
begin
if(to_char(sysdate DY )= SUN
RAISE_APPLICATION_ERROR( 不能在周末修改表auths );
( RAISE_APPLICATION_ERROR是函数 括弧内的 第一参数范围在 ~ 之间 第二个
参数是字符串 大小在 k 超过的话 自动截断)
end if;
lishixinzhi/Article/program/Oracle/201311/17609通常创建触发器以在不同表中的逻辑相关数据之间实施引用完整性或一致性。例子:
--
创建一个表(数据库设计的部分)
Create
Table
OrderLog
(
EditDate
smalldatetime
)
--
创建触发器,当OrderList表被UPDATE的时候,执行一段操作
CREATE
TRIGGER
tr_OrderList_Log
On
OrderList
AFTER
UPDATE
AS
Insert
Into
OrderLog(EditDate)
Values(getDate())
GO
--
修改表OrderList中的OutDate,使得触发器被州基陆执行
Update
OrderList
Set
OutDate
=
getDate()
--
察看触发册顷器执锋坦行的后果
select
*
from
OrderLog
以上就是触发器语法的全部内容,1、后触发器 (AFTER,FOR)先执行对应语句,后执行触发器中的语句。2、前触发器 并没有真正的执行触发语句(insert,update,delete),而是执行触发后的语句。3、行级触发器 (FOR EACH ROW) 在SQL server 中不存在。