如何创建跨库触发器?
答案:2 悬赏:0 手机版
解决时间 2021-02-10 23:48
- 提问者网友:送舟行
- 2021-02-10 07:03
还有一个问题,请问怎么创建跨库触发器,和同库异表创建触发器有什么区别吗?
最佳答案
- 五星知识达人网友:持酒劝斜阳
- 2021-02-10 07:53
在MS SQL里面,标识一个对象,是使用四段式全称来标识的
服务器名、数据库名、所有者名、对象名
在同一服务器下面,也可以使用三段式全称来标识对象,所有者名的默认值是数据库的所有者(dbo),可省略,如:pubs.dbo.student和pubs..student表达的意思是一样的!
请注意pubs..student(中间两点)
下面看下一个简单的例子吧。
create trigger triggerUser //创建一个触发器,名称为triggerUser
on student
after insert //当插入student这张表之后触发,触发器分为三类insert触发器,update触发器,delete触发器;
as
declare @username varchar(100) //定义@username变量
select @username = username from inserted //为@username赋值,在为每个DML触发器里面都定义了两个特殊的表,inserted和deleted
insert into Test..TestUser(userName) //Test为数据库名称 ".."省略所有者(dbo),TestUser表名称
values(@username);
服务器名、数据库名、所有者名、对象名
在同一服务器下面,也可以使用三段式全称来标识对象,所有者名的默认值是数据库的所有者(dbo),可省略,如:pubs.dbo.student和pubs..student表达的意思是一样的!
请注意pubs..student(中间两点)
下面看下一个简单的例子吧。
create trigger triggerUser //创建一个触发器,名称为triggerUser
on student
after insert //当插入student这张表之后触发,触发器分为三类insert触发器,update触发器,delete触发器;
as
declare @username varchar(100) //定义@username变量
select @username = username from inserted //为@username赋值,在为每个DML触发器里面都定义了两个特殊的表,inserted和deleted
insert into Test..TestUser(userName) //Test为数据库名称 ".."省略所有者(dbo),TestUser表名称
values(@username);
全部回答
- 1楼网友:旧脸谱
- 2021-02-10 09:09
首先在你要创建触发器的库,先建一个dblink,然后触发器里调用dblink链接的目标表,
语法是比如:table_name@orcl
具体业务逻辑代码就不给你写了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯