sql server 触发器 中 for 怎么使用

和AFTER , instead of 有什么区别

创建触发器的语法是:
create trigger 触发器名称 on(为哪个表创建触发器) for (创建什么样的触发器)
只要记住,for后面跟触发器的类型就行了。
触发器主要分2种,DML和DDL。after和instead of 都是DML触发器,其中,after主要是对表进行增、删、改时触发,而instead of 触发器并不执行其所定义的操作,只执行触发器本身。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-05-09
其实MS-SQL只有两种触发器
for 触发器,执行后触发器
也可以写成:for after 只不过after可写可不写,一般省略掉了
在用户执行数据操作之后,触发器触发,执行触发器代码
如:
表1(ID,NAME)
表2(ID,NAME)
当用户插入表1数据后,表2也被插入相同的数据:
代码如下:
create trigger Mytr
on 表1
for insert
as
insert into 表2 select * from inserted

还有instead of 执行前触发器
在用户执行数据操作数据之前,触发器触发,执行触发器代码,不执行用户的操作
根据这个特性,instead of 触发器可以为视图添加数据操作的功能
如:
表:
表1(ID,NAME) 表2(ID,DATE)
视图 :
DATA(表1.ID,表1.NAME,表2.DATE)

为DATA视图添加insert操作:代码如下
create triger trgName
on DATA
instead of insert
as
begin
insert into 表1 select ID,NAME from inserted
insert into 表2 select ID,DATE from inserted
end本回答被提问者和网友采纳

sql server 触发器 中 for 怎么使用
创建触发器的语法是:create trigger 触发器名称 on(为哪个表创建触发器) for (创建什么样的触发器)只要记住,for后面跟触发器的类型就行了。触发器主要分2种,DML和DDL。after和instead of 都是DML触发器,其中,after主要是对表进行增、删、改时触发,而instead of 触发器并不执行其所定义的操作,...

SQL Server触发器的基本语法和使用方法
创建触发器使用 CREATE TRIGGER 语句。基本语法包括触发器名称、事件类型(如 BEFORE 或 AFTER 插入、更新或删除操作)、触发事件(如 INSERT、UPDATE 或 DELETE)和所在表名。可选参数 FOR EACH ROW 指定触发器作用于每一行。以下是几个应用案例,展示触发器的实际使用。1. 创建触发器,当向 Orders 表...

SQL Server触发器的基本语法和使用方法
要创建触发器,首先使用CREATE TRIGGER语句,包括触发器名称(如trigger_name)、事件类型(BEFORE或AFTER)、触发事件(INSERT、UPDATE或DELETE)、关联的表名(table_name)以及可选的FOR EACH ROW参数。基本语法如下:触发器名(trigger_name):命名触发器,用于引用。 事件类型:BEFORE或AFTER,定义触发...

SQl中触发器怎样执行的?
1、后触发器 (AFTER,FOR)先执行对应语句,后执行触发器中的语句。2、前触发器 并没有真正的执行触发语句(insert,update,delete),而是执行触发后的语句。3、行级触发器 (FOR EACH ROW) 在SQL server 中不存在。

SQL Server 怎么用存触发器实现从一个表里查询数据,然后插入到另一个...
\/\/触发器create trigger [MyUser_trigger]on [dbo].[MyUser]for insert,deleteasbeginif exists ( select * from sysobjects where name = 'temp' and type = 'U')drop table tempselect identity(int,1,1) as rowid,UserName into temp from MyUserend\/\/测试数据insert MyUser values('123','123',1...

SQL触发器如何使用
使用 WITH ENCRYPTION 可防止将触发器作为 SQL Server 复制的一部分发布。AFTER指定触发器只有在触发 SQL 语句中指定的所有操作都已成功执行后才激发。所有的引用级联操作和约束检查也必须成功完成后,才能执行此触发器。如果仅指定 FOR 关键字,则 AFTER 是默认设置。不能在视图上定义 AFTER 触发器。INSTEAD OF指定...

sql server如何创建触发器,使在a表中插入数据时在b表中追加相同的记录...
create trigger insert_for_b on a after insert as begin insert into b(插入a表字段)select 插入a表字段 from inserted --插入a表字段表示a表的所有字段,如果这里需要b表其他字段,要加固定的值 end go

sql触发器只修改当前行的值,不要整张表都改?
我用SQL Server 写了一个例子,可以执行成功:ALTER TRIGGER Sum \/* 触发器名为Sum *\/ ON dbo.wx \/* 正对表维修(wx) *\/ FOR UPDATE \/* 当有更新时执行 *\/ AS IF UPDATE(rgf) \/* 如果手动更新字段人工费 *\/ BEGIN UPDATE wx SET wxmoney = rgf + clf; \/* 就自动...

SQL SERVER 触发里的for update as if update (id) begin与 after upda...
IF UPDATE(id) 表示当id列变更时, 触发器生效

SQL server 如何使用触发器记录用户的更新操作的列的值
create trigger [dbo].[触发器名称]on [dbo].[表名] after updateasbegin --你需要的操作写在这里end在更新触发器中,通过 deleted 获取更新前的值;通过 inserted 获取更新后的值。例如 -- 获取更新前的值select * from deleted -- 获取更新后的值select * from inserted ...

相似回答