查询同一服务器上不同数据库中的两个表

Gur*_*epS 10 sql t-sql sql-server

我需要在两个不同的数据库中查询两个表SQL Server.在一个表上,我需要获取所有行(简单选择),另一个是select,但是id匹配我的存储过程中的参数.

我尝试这样做但得到错误

无法绑定多部分标识符.

我怎么能这样做?

查询:

  SELECT QUALITY_CENTER, POSTCODE_ID, (SELECT   [QCID]   
  FROM [Website_Interactive].[dbo].[IIPCentre_UserObject]
  WHere LoginID = @loginID)
  FROM IIP_QC_LIST
Run Code Online (Sandbox Code Playgroud)

Abe*_*ler 15

听起来你错了什么.您可以使用以下方法查询另一个数据库中的表:

SELECT tn.ID, tn.NAME
FROM [Database Name].[Schema].[TableName] as tn
Run Code Online (Sandbox Code Playgroud)

我故意添加了一个两个字的数据库名称,因为你必须在它周围加上方括号才能被识别.您的架构很可能是dbo.

如果您向我们展示您的查询并向我们提供数据库名称,我可以提供更完整的答案.

更新:

你确定你正确拼写"中心"吗?我注意到你把它拼写为"中心" IIPCentre_UserObject,我认为它可能适合英国(?),但你拼写它为"中心" QUALITY_CENTER.我认为它在你的环境中以某种方式拼写.


Ayy*_*udy 7

您可以通过向SQL对象(在本例中为SQL表)提供FQN(完全限定名称)来轻松完成此操作.表的FQN语法如下:

[database-name].[schema-name].[table-name]
Run Code Online (Sandbox Code Playgroud)

例:

SELECT a, b, c FROM Database1.Schema1.Table1
UNION 
SELECT a, b, c FROM Database2.Schema2.Table2
Run Code Online (Sandbox Code Playgroud)

Database1是您的第一个数据库,Database2是您的第二个数据库.