SQL Server2000提供了两种触发器:“Instead of” 和“After” 触发器。
垫江ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!
一个表或视图的每一个修改动作(Insert、Update和Delete)都可以有一个“Instead of” 触发器,一个表的每个修改动作都可以有多个“After”触发器。
create trigger trigger_name
on {table_name|view_name}
{After|Instead of} {insert|update|delete}
as 相应T-SQL语句
你可以直接用语句写呀,如:
CREATE TRIGGER [TRIGGER NAME] ON [dbo].[TABLE NAME]
FOR INSERT, UPDATE, DELETE
AS
或者你用SQL SERVER的企业管理器,选中要建立触发器的表,点后键,然后选择管理触发器,这时会弹出一个编辑窗口,然后自己编写触发器就OK了。
批量修改不启作用是因为 declare @_ID INT select @_ID= ID1 from INSERTED 这里只取了一条记录
建议你修改成 循环的 游标或者WHILE循环都可以。
--创建一个针对于users表的叫insTomod的触发器
create
trigger
insTomod
on
users
after
insert,update
--当插入或修改时触发
as
--触发后执行的操作。
update
users
set
age=20
where
uid
in
(select
uid
from
inserted)
update
users
set
age=20
where
age
is
null
go
通常创建触发器以在不同表中的逻辑相关数据之间实施引用完整性或一致性。例子:
--
创建一个表(数据库设计的部分)
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