【问题标题】:How to access the table of one database from other database , both the databases are on same server in sqlserver如何从另一个数据库访问一个数据库的表,两个数据库都在sqlserver中的同一台服务器上
【发布时间】:2021-01-08 04:58:41
【问题描述】:

我有两个数据库驻留在同一台服务器上,假设我有 db1 和 db2,现在我想从 db2 访问 db1 中的一些表,如何在 Sql Server-12 中执行此操作?

【问题讨论】:

  • 您使用哪个 Azure 数据库? Azure sql 数据库或托管实例?如果是 Azure SQL 单一数据库,则可以使用弹性查询来实现。参考:docs.microsoft.com/en-us/azure/azure-sql/database/…
  • 你好@Vinod Kumar,欢迎来到堆栈溢出!如果我的回答对您有帮助,希望您能接受它作为答案(单击答案旁边的复选标记,将其从灰色切换为已填充。)。这对其他社区成员可能是有益的。谢谢。

标签: tsql sql-server-2008 sql-server-2012 azure-sql-database ssms


【解决方案1】:

如果您使用的是 Azure SQL 数据库(单数据库),则不支持 USE statement。我们可以使用弹性查询来实现跨数据库查询。

参考:Azure SQL Database elastic query overview

  • 弹性查询功能(预览版)使您能够运行 跨 Azure SQL 中的多个数据库的 Transact-SQL 查询 数据库。它允许您执行跨数据库查询以访问 远程表,并连接 Microsoft 和第三方工具(Excel、 Power BI、Tableau 等)跨数据层查询多个 数据库。使用此功能,您可以将查询扩展到大型 数据层和可视化商业智能 (BI) 中的结果 报告。

如果您使用的是 Azure SQL 托管实例,则与本地 SQL Server 相同。

【讨论】:

  • 感谢您的帮助,我正在使用 Azure SQL 数据库,在弹性查询的帮助下,我能够访问跨数据库表。
  • @VinodKumar 不客气!您能接受它作为答案吗(单击答案旁边的复选标记将其从灰色切换为已填充。)?这对其他社区成员可能是有益的。非常感谢!
【解决方案2】:

例如你想访问 table[A] > schema[dbo] > 数据库[C]

假设当前用户可以访问两个数据库

SELECT * FROM [C].[dbo].[A]

加入 [A] 表 来自 [schema_1] 架构 来自 [db_1 ] 数据库[B] 表 来自 [schema_2] 架构 来自 [db_2] 数据库来自同一服务器上的不同数据库

使用 db_1 时

USE [db_1]
SELECT * FROM [schema_1].[A] AS [db_1_A] INNER JOIN [db_2].[schema_2].[B] AS [db_2_B] ON [db_1_A].[field_1]=[db_2_B].[field_1]

使用 db_2 时

USE [db_2]
SELECT * FROM [db_1].[schema_1].[A] AS [db_1_A] INNER JOIN [schema_2].[B] AS [db_2_B] ON [db_1_A].[field_1]=[db_2_B].[field_1]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-19
    • 2012-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多