当前位置:首页 » 编程语言 » sql新建触发器

sql新建触发器

发布时间: 2022-06-13 10:06:03

sql如何创建一个触发器

创建触发器用 CREATE TRIGGER

CREATE TRIGGER 触发器名称
ON 表名
FOR INSERT、UPDATE 或 DELETE
AS T-SQL 语句

注意:触发器名称是不加引号的。

例子:
create trigger jcsj_1
on 表名
for insert
as
begin
update 表名 set 授课门数=授课门数+1 where 教师ID=(select 教师 ID from inserted)
end

详见
http://tech.ddvip.com/2007-01/116783077317261.html
请采纳答案,支持我一下。

❷ SQL 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里中存储过程和触发器,如何创建

  1. 触发器是一种特殊的存储过程,
    2.触发器是在对表进行插入、更新或删除操作时自动执行的存储过程
    3.触发器通常用于强制业务规则
    4.触发器是一种高级约束,可以定义比用CHECK 约束更为复杂的约束
    5.可执行复杂的SQL语句(if/while/case)

  2. DELETE 触发器
    INSERT 触发器
    UPDATE 触发器

  3. /*----------Insert 插入 触发器------------*/
    Create Trigger Tri_insert
    on students /*针对某个表,触发器是建立在表关系上的*/
    for insert /*采用的是哪种触发器*/
    as
    declare @stu_id int;
    declare @stu_score varchar(200);
    select @stu_id=s_id from inserted /*这里的Inserted 是在创建触发器时候 系统自动创建的内存表*/
    insert into student_Score(s_id,ss_score)values(@stu_id,'100')

  4. go
    --就是插一条数据进入students中,Tri_insert触发器就会自动在student_Score插入相关的学生的一条分数的数据
    insert into students(s_name,s_classId) values('黄驰',6)

  5. select * from student_Score

❹ SQl中怎么样创建触发器

创建触发器:
Create
Trigger
名称

On
表名

For
类型

As

Sql语句

希望对你有帮助!

❺ sql语句 如何创建触发器

其实可以使用DEFAULT约束
alter
table
tbname
add
constraint
DF_Password
default
'666666'
FOR
[password]
当然触发器也可以的
create
trigger
trIns
on
表名
instead
of
insert
as
begin
insert
表名(用户名,密码,col1.。。。)
select
username,'666666',...
from
inserted
end

❻ SQL触发器怎么做

CREATE
TRIGGER
[km]
ON
员工表
AFTER
DELETE
AS
BEGIN
DELETE
FROM
工资表
WHERE
员工编号
IN
(SELECT
员工编号
FROM
deleted)
END
CREATE
TRIGGER
[gf]
ON
员工表
AFTER
UPDATE
AS
BEGIN
UPDATE
工资表
SET
部门编号=(SELECT
部门编号
FROM
inserted)
WHERE
员工编号=(SELECT
员工编号
FROM
inserted)
END

❼ 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表中。

❽ sql server2012如何建立触发器

  • 首先你当然要有一个数据库了,这里我使用自己创建的数据库booksDB。

    在数据库booksDB上创建触发器,右击触发器->新建触发器,打开之后的界面如下所示

  • 6

    数据库的增删改查类似

❾ sql server 中如何建立触发器

你可以直接用语句写呀,如:
CREATE
TRIGGER
[TRIGGER
NAME]
ON
[dbo].[TABLE
NAME]
FOR
INSERT,
UPDATE,
DELETE
AS
或者你用SQL
SERVER的企业管理器,选中要建立触发器的表,点后键,然后选择管理触发器,这时会弹出一个编辑窗口,然后自己编写触发器就OK了。

❿ 怎样创建一个sql的触发器

视图是虚拟表,不能建触发器,只能在基本表上建

热点内容
删除sqlserver服务 发布:2024-05-18 16:47:06 浏览:322
密码盒的密码是多少钱 发布:2024-05-18 16:43:52 浏览:94
linux哪个c语言编译器好用 发布:2024-05-18 16:30:03 浏览:468
搜狐视频无法缓存 发布:2024-05-18 16:30:03 浏览:309
小鸟云服务器值不值得买 发布:2024-05-18 16:30:01 浏览:898
durbin算法 发布:2024-05-18 16:29:57 浏览:555
qq邮箱访问受限 发布:2024-05-18 16:23:27 浏览:472
电信光纤上传限制 发布:2024-05-18 16:08:05 浏览:910
sql中的limit 发布:2024-05-18 16:05:57 浏览:895
启动ug时服务器无响应是怎么回事 发布:2024-05-18 15:48:24 浏览:372