【问题标题】:Calling functions of master DB from other DB on the same Azure SQL Server从同一 Azure SQL Server 上的其他 DB 调用主 DB 的函数
【发布时间】:2017-10-16 13:28:00
【问题描述】:

我有 Azure SQL DB 服务器 + 一个 Azure SQL 数据库。在这个数据库中,我有一些函数调用主数据库的一些函数作为其逻辑的一部分。

例子:

CREATE FUNCTION [dbo].[EncryptByKey]
(
    @EncryptionKeyId nvarchar(1024),
    @ValueToEncrypt varchar(MAX)
)
RETURNS VARCHAR(MAX)
AS
BEGIN
    RETURN master.dbo.fn_varbintohexstr(ENCRYPTBYKEY(Key_GUID(@EncryptionKeyId), @ValueToEncrypt))
END

给我一​​个错误:

找不到“master”列或用户定义的函数,或者 聚合“master.dbo.fn_varbintohexstr”,或者名称不明确。

如果我尝试:

exec master.dbo.fn_varbintohexstr(123)

我得到的错误是:

对数据库和/或服务器名称的引用 此版本的 SQL 不支持“master.dbo.fn_varbintohexstr” 服务器。

是否有关于如何在 Azure SQL 服务器上使用用户数据库中的主数据库函数的解决方案?

【问题讨论】:

  • 你为什么使用 SELECT 的 EXEC insted?选择 master.dbo.fn_varbintohexstr(123)
  • @sepupic,请仔细阅读。带有 exec 的示例仅用于获取更正确的错误消息。选择也不起作用。
  • @sepupic 感谢您指出这一点,将阅读您链接中提到的 MS 文章

标签: sql sql-server azure azure-sql-database azure-sql-server


【解决方案1】:

您不能在 SQL Azure 上使用使用三个或四个部分名称的分布式数据库查询。

对于 SQL Azure 中跨多个数据库的查询,您需要使用弹性查询。更多信息请访问this文章。

【讨论】:

    猜你喜欢
    • 2017-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    相关资源
    最近更新 更多