2009-02-13 95 views
7

是否有连接到另一台服务器的TSQL命令?TSQL命令连接到另一台服务器(SQL Server 2005)

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

我已经看到Ctrl + N弹出在某些屏幕上连接到服务器对话框,但是当我在查询窗口中时已经按Ctrl + N它只是打开另一个查询窗口。

使用USE命令可以连接到当前服务器上的其他数据库,但有没有可以连接到另一台服务器的命令?

我使用SQL Server 2005的

+0

您是否正在更改当前查询窗口正在执行的服务器,或让当前查询从另一台服务器获取数据,但保持与当前连接的数据保持连接? – SqlRyan 2009-06-08 19:15:03

回答

5

可以使用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数据来源说a很少访问 。对于访问更多 的任何数据源,定义链接服务器 多次。 OPENDATASOURCE或OPENROWSET都不提供 所有链接服务器的功能定义,例如安全性 管理和查询 目录信息的能力。所有连接 信息(包括密码)必须在每次调用OPENDATASOURCE时提供 。

1

你必须创建一个Linked ServerOPENQUERY使用或使用OPENROWSET的选择。

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

1

一旦你建立链接的服务器可以通过完全限定每个表/视图

SELECT * FROM [服务器]对其运行TSQL。[数据库]。(业主)。表

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

6

或者通过菜单...

查询>连接>更改连接

或通过鼠标...

(右键单击鼠标按钮)>连接>更改连接

双方将弹出连接到数据库引擎对话框

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

4

另一个可行的选项取决于您想要执行的操作是SQLCMD模式还是注册服务器。

可以在SSMS的查询菜单下启用SQLCMD模式。该功能开启后,你可以做这样的事情吧:

:CONNECT SERVER1 
SELECT @@SERVERNAME; 
GO 

:CONNECT SERVER2 
SELECT @@SERVERNAME; 
GO 

,注册服务器(应该是在视图菜单下),你可以一次性设置多组服务器,并执行对组查询。

双方可以在许多DBA情况下非常有用,但我不知道这是你以后。

+0

编辑添加语句终止符和批处理执行命令,否则我的前面的示例中的两个命令都针对第二个服务器执行。 – 2013-01-21 20:16:39

相关问题