首页 > 解决方案 > 是否可以在另一个数据库中调用一个数据库的函数和存储过程 - Azure Sql server

问题描述

我需要从另一个数据库调用函数到 Azure sql 中的数据库。也就是说,DB1中有一个函数。我在 DB2 中需要同样的功能。如何从 DB2 调用它?两个数据库都在 azure Sql server

标签: databaseazureazure-sql-database

解决方案


也许您可以查看此文档:跨横向扩展云数据库报告(预览版)

弹性查询还引入了一个存储过程,可提供对分片的直接访问。该存储过程称为 sp_execute _remote,可用于在远程数据库上执行远程存储过程或 T-SQL 代码。它采用以下参数:

  1. 数据源名称 (nvarchar):RDBMS 类型的外部数据源的名称。
  2. 查询 (nvarchar):要在每个分片上执行的 T-SQL 查询。
  3. 参数声明 (nvarchar) - 可选:带有数据类型定义的字符串 4. Query 参数中使用的参数(如 sp_executesql)。
  4. 参数值列表 - 可选:以逗号分隔的参数值列表(如 sp_executesql)。

sp_execute_remote 使用调用参数中提供的外部数据源在远程数据库上执行给定的 T-SQL 语句。它使用外部数据源的凭据连接到 shardmap manager 数据库和远程数据库。

例子:

 EXEC sp_execute_remote
        N'MyExtSrc',
        N'select count(w_id) as foo from warehouse'

这意味着您可以在另一个数据库中调用一个数据库的函数和存储过程,只需要修改SQL语句。

希望这可以帮助。


推荐阅读