【问题标题】:How does one select the server name in a sys objects query如何在 sys 对象查询中选择服务器名称
【发布时间】:2017-12-03 14:43:08
【问题描述】:

在 T-SQL 中,我正在尝试做类似的事情:-

select * from [server_name].dbo.sys.objects

但我不断收到错误“无效的对象名称..”

我最终想比较两台服务器的所有数据库 (类似于以下内容..):--

Select * from [server1].dbo.Sys.Databases d1
cross join [server2].dbo.Sys.Databases d2
on d1.database_id = d2.database_id

【问题讨论】:

    标签: tsql inner-join cross-join sysobjects sysdatabases


    【解决方案1】:

    您可以使用链接服务器在单个查询中从两个不同服务器上的数据库中选择数据。

    您可以通过 SQL Server Mangement Studio 在 Server Objects --> Linked Servers 下设置链接服务器。将 [server1] 链接到 [server2] 后,您应该能够执行查询。

    【讨论】:

      【解决方案2】:

      使用这个。

      select from [server_name].[base_name].sys.objects
      

      【讨论】:

      • [base_name] 是什么?使用dbo 给我上面的'invalid object name..' 错误
      • Base name 是您要在其他服务器上使用的 base 的名称。
      • 嗯,但如果不是 dbo 是什么?我如何找到它?
      • @heyNow 他的意思是数据库名称。 SQL Server 使用标准的 4 部分标识符:server.database.schema.object。
      • 好的,我什至无法从中选择 Select * from [server1].sysobjects 也给出错误,有什么建议吗?
      猜你喜欢
      • 2020-05-17
      • 1970-01-01
      • 2010-10-23
      • 1970-01-01
      • 2020-04-23
      • 1970-01-01
      • 1970-01-01
      • 2014-11-02
      • 1970-01-01
      相关资源
      最近更新 更多