【问题标题】:Cross-database trigger in SQL ServerSQL Server 中的跨数据库触发器
【发布时间】:2012-03-01 09:23:38
【问题描述】:

我在同一个 SQL Server 实例上有两个表 CrossDBTrigTest_1CrossDBTrigTest_2

这两个数据库都有一个名为 Employee 的表。

我在EmployeeCrossDBTrigTest_1 db上写了以下触发器:

Create Trigger [dbo].[CrossDBInsert] on [dbo].[employee] after insert
AS 
Begin
  Set nocount on

  Insert into CrossDBTrigTest_2.employee(FirstName, LastName, Date) 
    SELECT inserted.FirstName, inserted.LastName, getdate() 
    FROM inserted
End

Insert 语句失败并显示消息:

消息 208,级别 16,状态 1,过程 CrossDBInsert,第 5 行
对象名称“CrossDBTrigTest_2.employee”无效。

在这种情况下如何启用跨数据库触发器??

【问题讨论】:

    标签: sql-server tsql triggers


    【解决方案1】:

    不应该

      CrossDBTrigTest_2.employee(FirstName,LastName,Date)
    

      CrossDBTrigTest_2.dbo.employee(FirstName,LastName,Date)
    

    ???

    【讨论】:

      【解决方案2】:

      使用

      CrossDBTrigTest_2..employee
      

      作为表名。注意两个点而不是一个。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-18
        • 2023-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多