1

我有 Azure SQL DB Server + 一个 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 Server 不支持对“master.dbo.fn_varbintohexstr”中的数据库和/或服务器名称的引用。

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

4

1 回答 1

3

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

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

于 2017-10-16T14:24:41.443 回答