sql表触发器创建(**L中触发器创建与调用)
本文目录
- **L中触发器创建与调用
- **L 触发器 创建一个向学生表S中插入一新同学时能自动列出全部同学信息的触发器display_trigger;求详解
- 怎么创建**L表UPDATE触发器
- sql触发器的创建
- **L server 创建触发器
- sql server 中如何建立触发器
- **L如何创建一个触发器
- **L触发器怎么做
- sql server2012如何建立触发器
**L中触发器创建与调用
先给你举个触发器的实例:
先创建两个表
Create Table Student( --学生表
StudentID int primary key, --学号
....
)
Create Table BorrowRecord( --学生借书记录表
BorrowRecord int identity(1,1), --流水号
StudentID int , --学号
BorrowDate datetime, --借出时间
ReturnDAte Datetime, --归还时间
...
)
创建触发器
Create Trigger truStudent
On Student --在Student表中创建触发器
for Update --为什么事件触发,在这里就是修改的时候会执行这个触发器,一旦你修改Student表,就会执行
As --事件触发后所要做的事情
if Update(StudentID)
begin
Update BorrowRecord
Set StudentID=i.StudentID
From BorrowRecord br , Deleted d ,Inserted i --Deleted和Inserted临时表
Where br.StudentID=d.StudentID
end
**L 触发器 创建一个向学生表S中插入一新同学时能自动列出全部同学信息的触发器display_trigger;求详解
--create trigger tgr_name
--on table_name
--with encrypion –加密触发器
-- for update...
--as
-- Transact-**L
create trigger display_trigger
on S for insert
as
select * from S
怎么创建**L表UPDATE触发器
触发器是一种特殊的存储过程,类似于其它编程语言中的事件函数,**L Server�6�4 允许为 INSERT、UPDATE、DELETE 创建触发器,当在表(视图)中插入、更新、删除记录时,触发一个或一系列 T-**L 语句。
1:创建触发器:
�0�3触发器可以在企业管理器里创建,也可以在表名上点右键-》“所有任务”-》“管理触发器”来创建。
�0�3用 CREATE TRIGGER创建触发器CREATE TRIGGER 触发器名称
ON 表名
FOR INSERT、UPDATE 或 DELETE
AS
T-**L 语句例:
USE Northwind
CREATE TRIGGER Category_Delete
ON Categories
FOR DELETE
AS
UPDATE P SET Discontinued = 1
FROM Products AS P INNER JOIN deleted AS d
ON P.CategoryID = d.CategoryID
sql触发器的创建
# 创建insert类型触发器
--创建insert插入类型触发器
if (object_id(’tgr_classes_insert’, ’tr’) is not null)
drop trigger tgr_classes_insert
go
create trigger tgr_classes_insert
on classes
for insert --插入触发
as
--定义变量
declare @id int, @name varchar(20), @temp int;
--在inserted表中查询已经插入记录信息
select @id = id, @name = name from inserted;
set @name = @name + convert(varchar, @id);
set @temp = @id / 2;
insert into student values(@name, 18 + @id, @temp, @id);
print ’添加学生成功!’;
go
--插入数据
insert into classes values(’5班’, getDate());
--查询数据
select * from classes;
select * from student order by id;
insert触发器,会在inserted表中添加一条刚插入的记录。
# 创建delete类型触发器
--delete删除类型触发器
if (object_id(’tgr_classes_delete’, ’TR’) is not null)
drop trigger tgr_classes_delete
go
create trigger tgr_classes_delete
on classes
for delete --删除触发
as
print ’备份数据中……’;
if (object_id(’classesBackup’, ’U’) is not null)
--存在classesBackup,直接插入数据
insert into classesBackup select name, createDate from deleted;
else
--不存在classesBackup创建再插入
select * into classesBackup from deleted;
print ’备份数据成功!’;
go
--
--不显示影响行数
--set nocount on;
delete classes where name = ’5班’;
--查询数据
select * from classes;
select * from classesBackup;
delete触发器会在删除数据的时候,将刚才删除的数据保存在deleted表中。
# 创建update类型触发器
--update更新类型触发器
if (object_id(’tgr_classes_update’, ’TR’) is not null)
drop trigger tgr_classes_update
go
create trigger tgr_classes_update
on classes
for update
as
declare @oldName varchar(20), @newName varchar(20);
--更新前的数据
select @oldName = name from deleted;
if (exists (select * from student where name like ’%’+ @oldName + ’%’))
begin
--更新后的数据
select @newName = name from inserted;
update student set name = replace(name, @oldName, @newName) where name like ’%’+ @oldName + ’%’;
print ’级联修改数据成功!’;
end
else
print ’无需修改student表!’;
go
--查询数据
select * from student order by id;
select * from classes;
update classes set name = ’五班’ where name = ’5班’;
update触发器会在更新数据后,将更新前的数据保存在deleted表中,更新后的数据保存在inserted表中。
**L server 创建触发器
create trigger tri
before insert
on 成绩表
for each now
begin
if :new.pscj《30 and :new.qmcj《30 then
update 成绩表 set pscj=(:new.pscj+10) and qmcj=(:new.qmcj+10)
end if
大概意思是这样的,我用的是Oracle写的,:new表示新插入的数据
sql server 中如何建立触发器
你可以直接用语句写呀,如:
CREATE
TRIGGER
[TRIGGER
NAME]
ON
.[TABLE
NAME]
FOR
INSERT,
UPDATE,
DELETE
AS
或者你用**L
SERVER的企业管理器,选中要建立触发器的表,点后键,然后选择管理触发器,这时会弹出一个窗口,然后自己编写触发器就OK了。
**L如何创建一个触发器
创建触发器用 CREATE TRIGGER
CREATE TRIGGER 触发器名称
ON 表名
FOR INSERT、UPDATE 或 DELETE
AS T-**L 语句
注意:触发器名称是不加引号的。
例子:
create trigger jcsj_1
on 表名
for insert
as
begin
update 表名 set 授课门数=授课门数+1 where 教师ID=(select 教师 ID from inserted)
end
详见
***隐藏网址***
请采纳答案,支持我一下。
**L触发器怎么做
CREATE
TRIGGER
ON
员工表
AFTER
DELETE
AS
BEGIN
DELETE
FROM
工资表
WHERE
员工编号
IN
(SELECT
员工编号
FROM
deleted)
END
CREATE
TRIGGER
ON
员工表
AFTER
UPDATE
AS
BEGIN
UPDATE
工资表
SET
部门编号=(SELECT
部门编号
FROM
inserted)
WHERE
员工编号=(SELECT
员工编号
FROM
inserted)
END
sql server2012如何建立触发器
首先你当然要有一个数据库了,这里我使用自己创建的数据库booksDB。
在数据库booksDB上创建触发器,右击触发器-》新建触发器,打开之后的界面如下所示
请点击输入图片描述
请点击输入图片描述
在我们上面打开的有代码的界面中,我们需要改动的地方就是我划了红线的地方。我在下面的图中给出了一个小例子。大家可以参照着打下
请点击输入图片描述
执行,刷新,结果如下:
请点击输入图片描述
向books表中增加数据:
我们先导出insert脚本,将需要插入的修改下,如下图,
请点击输入图片描述
请点击输入图片描述
执行,我这里就执行出两条结果,一条是查询insert表的数据,另外一条是查询表books的数据
请点击输入图片描述
6
数据库的增删改查类似