消息 7202,级别 11,状态 2,第 1 行无法在 sys.servers 中找到服务器 'acct'

Msg 7202, Level 11, State 2, Line 1 Could not find server 'acct' in sys.servers

您知道查询我的表和服务器数据库连接时可能出现的代码错误是什么吗,我通常按以下格式列出我的查询,今天它为我提供了同样的持续错误,只有这个查询显示了这个错误类型。由于这是唯一存储这些表的数据库,我的表引用了正确的数据库。下面列出了我的查询代码,可能缺少某些内容。

SELECT  Distinct
'CA' AS 'Server'     
 
, DATENAME(month, res.Move_in_Date) [MonthName]
, DATEPART(day, res.Move_in_Date) [Day]
, DATENAME(WEEKDAY, res.Move_in_Date) [Weekday]

, res.Move_in_Date
, res.Move_out_Date
, ge.Entity_Number
, bld.Building_Name
, addr.Address2
, addr.City
, addr.State
, addr.Zip_Code
, bld.Building_ID
, unts.Unit_Number
, res.First_Name
, res.Last_Name
, ge.Active AS GL_Entities_Active
, bld.Building_Active

FROM            
acct.cam_ca.dbo.residents AS res

INNER JOIN
acct.cam_ca.dbo.units AS unts
ON res.Unit_ID = unts.Unit_ID 

INNER JOIN
acct.cam_ca.dbo.addresses AS addr

INNER JOIN
acct.cam_ca.dbo.gl_entities AS ge
ON addr.Address_ID = ge.Address_ID 

INNER JOIN
acct.cam_ca.dbo.buildings AS bld
ON ge.GL_Entity_ID = bld.GL_Entity_ID ON unts.Building_ID = bld.Building_ID


WHERE 
ge.Active = 1
AND ge.Entity_Number = 1
AND bld.Building_Active = 1

AND res.Move_in_Date BETWEEN '20200101 00:00:00.000 AM' AND '20200707 11:59:59 PM'


ORDER BY 
ent.Entity_Number
, res.Move_in_Date

您的查询正试图访问另一台服务器上的 table,通过名为 acctlinked server 访问。例如,在您的代码中有 acct.cam_ca.dbo.residents。这里:

  • residents 是 table 名字
  • dbo 是架构名称
  • cam_ca是数据库名
  • acct是链接服务器名

链接服务器曾经存在但已被 DBA 删除,或者您 运行 您的查询在与它工作的服务器不同的服务器上并且这个新服务器没有 acct 链接服务器已设置,或者您已更改查询。

从错误消息中可以看出,查询中提到的服务器在元数据视图中不可用 sys.servers.There 有两种可能性,

  1. 服务器“acct”不可用。

  2. 服务器“acct”已定义但可以有不同的名称 定义。

通过 运行 查询进行故障排除 运行 下面的查询列出所有可用的服务器,

select name,data_source from sys.servers

尝试确定与 data_source 对应的名称,并在您的查询中使用该名称而不是 acct 作为服务器。 如果您无法识别相关条目,请联系 DBA 以提供服务器的详细信息。