【问题标题】:triggers in different schemas不同模式中的触发器
【发布时间】:2011-09-04 04:46:29
【问题描述】:

我是 SQL Server 的新手。

我必须编写一个触发器,用于在 MS SQL 的不同模式中插入和更新表。

例子:

一个Schema中的TEMP1表

另一个 Schema 中的 TEMP2 表

如何做到这一点?

【问题讨论】:

  • 表结构是什么 - 即 temp1 和 temp2 之间有什么关系吗?它们是两个不同架构中的相同表吗?

标签: sql sql-server tsql triggers schema


【解决方案1】:

只要 SCHEMA 具有相同的所有者(CREATE SCHEMA 中的 AUTHORIZATION 位),您只需使用 2 个部分名称来引用对象。

也见CREATE TRIGGER

create trigger MyTrigger on Schema1.Table1
for insert
as
set nocount on
insert Schema2.Table2 (...)
select (..) from inserted
go

【讨论】:

    【解决方案2】:

    不确定我是否完全理解问题,但基本语法如下所示:

    create trigger MyTrigger on Schema1.Table1
    after insert, update
    as
        insert Schema2.Table2 values(1, 'test', ...)
    
        update Schema3.Table3
        set Name = 'XX'
        where Id = 1
    go
    

    【讨论】:

      【解决方案3】:

      您必须创建多个触发器来处理不同表上的不同事件。

      请参阅CREATE TRIGGER (Transact-SQL)

      【讨论】:

        猜你喜欢
        • 2020-04-18
        • 1970-01-01
        • 2012-11-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-15
        • 2014-02-15
        相关资源
        最近更新 更多