Вызов функций главной БД из другой БД на том же 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, необходимо использовать эластичные запросы. Для получения дополнительной информации, пожалуйста, посетите эту статью.