首页 > 解决方案 > 是否可以从其他数据库表中的触发器调用 UDF?

问题描述

我有 2 个数据库,比如 DB1 和 DB2。DB1 包含一个表,例如 MyTable,而 DB2 包含一个 UDF,例如 MyFunction。

我需要在 DB1 的 MyTable 表中创建一个插入触发器。该触发器应该调用 DB2 中的 UDF。

我在触发器中试过这个:

    DECLARE @result INT
    SELECT @result = DB2.[dbo].[MyFunction]

但这不起作用。

有没有办法做到这一点?

问候詹姆

标签: sql-serveruser-defined-functionsdatabase-trigger

解决方案


当我在不同的数据库中创建触发器并引用标量函数时没有所需的尾随()(根据原始帖子)

CREATE TRIGGER tTEST on MD.Table
FOR INSERT
AS
SELECT DB2.dbo.LocalDateTime

我明白了

消息 4104,级别 16,状态 1,过程 tTEST,第 4 行 [批处理开始行 185] 无法绑定多部分标识符“DB2.dbo.LocalDateTime”。

我想这是你得到的错误?

所以添加所需的括号:

CREATE TRIGGER tTEST on MD.Table
FOR INSERT
AS
SELECT DB2.dbo.LocalDateTime()

推荐阅读