SQL Server:连接到另一个实例 [英] SQL Server: connect to another instance
问题描述
我对SQL Server有疑问。我有一个存储过程,该存储过程应该访问另一个SQL Server,以将数据复制到另一个服务器。
I have a question for SQL Server. I have a stored procedure which should access another SQL Server to copy the data to another server.
这可能吗?如果是,该怎么办?
Is this possible? If yes: how can I do this?
我找不到一些示例。
我使用SQL Server 2008 R2
I use SQL Server 2008 R2
推荐答案
以下是示例...
连接到第一个服务器,并运行此脚本
Connect to the first server, and run this script
CREATE DATABASE [DatabaseA];
GO
CREATE TABLE [DatabaseA].[dbo].[TableA] (Id int, ValueA varchar(10));
INSERT INTO [DatabaseA].[dbo].[TableA] VALUES(1,'a'),(2,'b'),(3,'c');
然后连接到第二台服务器,并运行此服务器
Then connect to the second server, and run this
CREATE DATABASE [DatabaseB];
GO
CREATE TABLE [DatabaseB].dbo.[TableB] (Id int, ValueB varchar(10));
INSERT INTO [DatabaseB].dbo.[TableB] VALUES(1,'A'),(2,'B'),(3,'B');
在与第一台服务器的连接中,我们创建了到第二台服务器的链接
In the connection to the first server, we create a link to the second like this
EXEC master.dbo.sp_addlinkedserver
@server = N'LINKTOB'
,@srvproduct=N'B'
,@provider=N'SQLOLEDB'
,@datasrc=N'<NAME OF SERVER CONTAINING DatabaseB>';
请注意,您需要更改 @datasrc 的值以适合您的
Note that you need to change the value of @datasrc to suit your environment.
现在,我们可以在第一台服务器上运行这样的查询,在同一查询中使用来自两个单独服务器的数据
Now we can on the first server run a query like this, using data from the two separate servers in the same query
SELECT
a.Id
,a.ValueA
,b.ValueB
FROM
[DatabaseA].[dbo].[TableA] AS a
INNER JOIN [LINKTOB].[DatabaseB].[dbo].[TableB] AS b ON a.Id = b.Id
结果应如下所示
如果两个服务器都在同一域中且具有相同的安全设置,一切应该正常进行,而无需进行任何进一步的更改。如果不是,请在服务器对象-链接服务器-LINKTOB 下的 Management Studio 中查看。打开 LINKTOB 的属性,然后查看安全性-标签。
If both servers are in the same domain with the same security settings, everything should work without any further change. If not, take a look in Management Studio under Server Objects - Linked Servers - LINKTOB. Open properties for LINKTOB and have a look at the Security-tab.
这篇关于SQL Server:连接到另一个实例的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!