2017-10-16 10 views
0

Azure SQL DB Server + Azure SQL 데이터베이스가 하나 있습니다. 이 DB 내에서 나는 그들의 논리의 일부로 마스터 DB의 일부 기능을 호출하는 기능을 가지고 있습니다.동일한 Azure SQL Server의 다른 DB에서 master DB를 호출하는 기능

예 : I 시도 대신하는 경우

Cannot find either column "master" or the user-defined function or aggregate "master.dbo.fn_varbintohexstr", or the name is ambiguous.

:

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 

나에게 오류를 제공

exec master.dbo.fn_varbintohexstr(123) 

내가 오류는 다음과 같습니다

Reference to database and/or server name in 'master.dbo.fn_varbintohexstr' is not supported in this version of SQL Server.

Azure SQL 서버에서 사용자 DB의 마스터 DB 기능을 사용하는 방법에 대한 해결책이 있습니까?

+0

SELECT의 EXEC insted를 사용하는 이유는 무엇입니까? master.dbo.fn_varbintohexstr (123) – sepupic

+0

@sepupic을 선택하십시오. 조심해서 읽으십시오. exec를 사용한 예제는 더 적절한 오류 메시지를 얻는 데에만 사용됩니다. 선택이 작동하지 않습니다. –

+0

https://stackoverflow.com/questions/11284998/cant-query-between-databases-in-sql-azure – sepupic

답변

2

SQL Azure에서 3 개 또는 4 개의 부분 이름을 사용하는 분산 데이터베이스 쿼리를 사용할 수 없습니다.

SQL Azure에서 여러 데이터베이스에 걸쳐있는 쿼리의 경우 탄성 쿼리를 사용해야합니다. 자세한 내용은 this 문서를 참조하십시오.