十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
通常创建触发器以在不同表中的逻辑相关数据之间实施引用完整性或一致性。例子:
岱岳ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!
--
创建一个表(数据库设计的部分)
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
添加的:
CREATE
TRIGGER
trig_xx_add
ON
[Table1]
AFTER
UPDATE,INSERT
AS
BEGIN
INSERT
INTO
[Table2]
([Product])
SELECT
[Product]
FROM
inserted
WHERE
NOT
EXISTS(SELECT
1
FROM
[Table2]
WHERE
[Product]=inserted.[Product])
END
假设你的id都是identity,
如果不是的话根据自己的需要进行修改
删除的也类似,
但是不知道你的需求是什么
首先你当然要有一个数据库了,这里我使用自己创建的数据库booksDB。
在数据库booksDB上创建触发器,右击触发器-新建触发器,打开之后的界面如下所示
请点击输入图片描述
请点击输入图片描述
在我们上面打开的有代码的界面中,我们需要改动的地方就是我划了红线的地方。我在下面的图中给出了一个小例子。大家可以参照着打下
请点击输入图片描述
执行,刷新,结果如下:
请点击输入图片描述
向books表中增加数据:
我们先导出insert脚本,将需要插入的修改下,如下图,
请点击输入图片描述
请点击输入图片描述
执行,我这里就执行出两条结果,一条是查询insert表的数据,另外一条是查询表books的数据
请点击输入图片描述
6
数据库的增删改查类似
SQL SERVER中触发器的触发类型有三种。
1、DML触发器,当数据库中表中的数据发生变化时,包括insert,update,delete任意操作,如果对该表写了对应的DML触发器,那么该触发器自动执行。
2、DDL触发器,是Sql Server2005新增的触发器,主要用于审核与规范对数据库中表,触发器,视图等结构上的操作。比如在修改表,修改列,新增表,新增列等。它在数据库结构发生变化时执行,主要用它来记录数据库的修改过程,以及限制程序员对数据库的修改。
3、登录触发器,登录触发器将为响应 LOGIN 事件而激发存储过程。与 SQL Server 实例建立用户会话时将引发此事件。登录触发器将在登录的身份验证阶段完成之后且用户会话实际建立之前激发。
扩展资料:
DML触发器的主要作用在于强制执行业 务规则,以及扩展Sql Server约束,默认值等。因为我们知道约束只能约束同一个表中的数据,而触发器中则可以执行任意Sql命令。
来自登录触发器内部且通常将到达用户的所有消息(例如错误消息和来自 PRINT 语句的消息)会传送到 SQL Server 错误日志。如果身份验证失败,将不激发登录触发器。
触发器可在写入数据表前,强制检验或转换数据。触发器发生错误时,异动的结果会被撤销。可依照特定的情况,替换异动的指令 (INSTEAD OF)。
触发器的编写方法:
sql触发器编写方法
----是不是订单关系表的触发器啊,是不是说错了啊
----如果是产品关系表,没有看见产品关系表和订单关系表的关联关系哦!
create trigger tr_TableB_ins
on [订单关系表]
for insert
as
insert into [订单日志表]([订单号],[操作时间])
select [订单号],getdate() from
from inserted
go;