【问题标题】:TSQL command to connect to another server (SQL Server 2005)连接到另一台服务器的 TSQL 命令 (SQL Server 2005)
【发布时间】:2009-02-13 09:42:26
【问题描述】:

是否有 TSQL 命令可以连接到另一台服务器?

或者当您在查询窗口中时,连接到另一台服务器并显示查询窗口的键盘快捷键是什么?

我在某些屏幕上看到 Ctrl+N 弹出 Connect to Server 对话框,但是当我已经在查询窗口中并按 Ctrl+N 时,它只会打开另一个查询窗口。 p>

USE 命令可以让你连接到当前服务器上的其他数据库,但是有没有一个命令可以让你连接到另一个服务器?

我使用的是 SQL Server 2005。

【问题讨论】:

  • 您是要更改当前查询窗口正在执行的服务器,还是要让您当前的查询从其他服务器获取数据,但保持与当前服务器的连接?

标签: sql sql-server tsql


【解决方案1】:

您可以将OpenDataSource 与链接服务器一起使用

OpenDataSource(provider_name, init_string)

例如

SELECT
FirstName,
Gender
FROM
OpenDataSource (
'SQLOLEDB',
'DataSource = NOLI\SQL2;UserID=myUserID;Password=myPassword'
).Organisation.dbo.Employees

来自MSDN-

与 OPENROWSET 函数一样, OPENDATASOURCE 应该只引用 访问的 OLE DB 数据源 不经常。定义链接服务器 对于访问更多的任何数据源 比好几倍。两者都不 OPENDATASOURCE 或 OPENROWSET 提供 链接服务器的所有功能 定义,例如安全性 管理和查询能力 目录信息。所有连接 信息,包括密码,必须 每次提供 OPENDATASOURCE 被调用。

【讨论】:

    【解决方案2】:

    通过菜单...

    查询 > 连接 > 更改连接

    或通过鼠标...

    (鼠标右键)> 连接 > 更改连接

    两者都会弹出连接数据库引擎对话框

    如果您想在服务器之间编写一些 TSQL,那么您需要创建一个链接服务器,然后在您的 SQL 中使用 OPENQUERY 或 OPENROWSET。以前的帖子中有一些关于如何做到这一点的好建议。

    【讨论】:

      【解决方案3】:

      根据您想要执行的操作,另外几个可行的选项是 SQLCMD 模式和注册服务器。

      可以在 SSMS 的查询菜单下启用 SQLCMD 模式。启用后,您可以使用它执行以下操作:

      :CONNECT SERVER1
      SELECT @@SERVERNAME;
      GO
      
      :CONNECT SERVER2
      SELECT @@SERVERNAME;
      GO
      

      使用已注册的服务器(应该在“查看”菜单下),您可以设置服务器组并同时针对这些组执行查询。

      两者在许多 DBA 场景中都很有用,但我不确定这是否是您所追求的。

      【讨论】:

      • 已编辑添加语句终止符和批处理执行命令,否则我之前示例中的两个命令都是针对第二台服务器执行的。
      【解决方案4】:

      您可以选择创建Linked Server 并使用OPENQUERY 或使用OPENROWSET

      如果您正在谈论将连接更改为查询窗口,只需在查询窗口中单击鼠标右键并选择更改连接。

      【讨论】:

        【解决方案5】:

        一旦你设置了一个链接服务器,你就可以通过完全限定每个表/视图来对其运行 TSQL

        从 [Server].[Database].[Owner].Table 中选择 *

        通过这种方式,您可以从任何查询窗口与任何服务器对话——如果您需要的话。在大多数 Sql 中,您只提供表,因为其他所有内容都是默认的。使用这种技术,您甚至可以在服务器之间编写连接子句,只要分布式事务协调器 (MSDTC) 正在运行。当然,您只需执行一次即可证明它有效,因为它运行得非常慢。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-03-07
          • 1970-01-01
          • 2023-03-23
          • 2010-11-21
          • 2011-03-19
          • 1970-01-01
          • 1970-01-01
          • 2020-04-20
          相关资源
          最近更新 更多