Вызов функций главной БД из другой БД на том же Azure SQL Server

У меня есть 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)

Я получаю ошибку:

Ссылка на базу данных и / или имя сервера в "master.dbo.fn_varbintohexstr" не поддерживается в этой версии SQL Server.

Существуют ли решения по использованию основных функций БД из пользовательских БД на SQL-сервере Azure?

1 ответ

Решение

В SQL Azure нельзя использовать запросы распределенной базы данных, используя имена из трех или четырех частей.

Для запросов, охватывающих несколько баз данных в SQL Azure, необходимо использовать эластичные запросы. Для получения дополнительной информации, пожалуйста, посетите эту статью.

Другие вопросы по тегам