从同一Azure SQL Server上的其他数据库调用主数据库的函数

时间:2017-10-16 13:28:01

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

我有Azure SQL DB Server +一个Azure SQL数据库。在这个DB中,我有一些函数将master DB的某些函数作为逻辑的一部分。

示例:

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"或用户定义的函数或   aggregate" master.dbo.fn_varbintohexstr",或名称不明确。

如果我尝试:

exec master.dbo.fn_varbintohexstr(123)

我得到的错误是:

  

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

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

1 个答案:

答案 0 :(得分:3)

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

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