【发布时间】:2017-10-16 13:28:00
【问题描述】:
我有 Azure SQL DB 服务器 + 一个 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 不支持“master.dbo.fn_varbintohexstr” 服务器。
是否有关于如何在 Azure SQL 服务器上使用用户数据库中的主数据库函数的解决方案?
【问题讨论】:
-
你为什么使用 SELECT 的 EXEC insted?选择 master.dbo.fn_varbintohexstr(123)
-
@sepupic,请仔细阅读。带有 exec 的示例仅用于获取更正确的错误消息。选择也不起作用。
-
@sepupic 感谢您指出这一点,将阅读您链接中提到的 MS 文章
标签: sql sql-server azure azure-sql-database azure-sql-server