sql如何连接其他服务器
-
在SQL中连接其他服务器,通常使用的是Linked Server特性。Linked Server允许在一个数据库服务器上访问另一个数据库服务器上的数据。下面我们来介绍如何在SQL中连接其他服务器。
首先,要创建一个Linked Server,可以使用SQL Server Management Studio (SSMS)或者使用T-SQL命令。下面分别介绍这两种方法。
方法一:使用SSMS创建Linked Server
- 打开SSMS,连接到要创建Linked Server的数据库服务器;
- 在“服务器对象”下找到“链接服务器”文件夹,右键单击,选择“新建链接服务器”;
- 在“常规”选项卡上,输入Linked Server的名称;
- 在“服务器类型”下拉列表中选择需要连接的服务器类型,如SQL Server;
- 在“远程服务器”中输入需要连接的服务器名称;
- 在“安全性”选项卡中,根据需要配置认证方法;
- 在“服务帐户”选项卡中,输入连接到远程服务器时使用的登录名和密码;
- 点击“确定”,完成Linked Server的创建。
方法二:使用T-SQL命令创建Linked Server
- 打开SQL Server Management Studio (SSMS),连接到要创建Linked Server的数据库服务器;
- 打开一个新的查询窗口,在窗口中执行以下T-SQL命令:
EXEC sp_addlinkedserver @server = N'LinkedServerName', @srvproduct=N'SQL Server' , @provider=N'SQLNCLI' , @datasrc=N'RemoteServerName'; EXEC sp_addlinkedsrvlogin @rmtsrvname = N'LinkedServerName', @useself = N'False' , @locallogin=NULL , @rmtuser=N'RemoteServerUsername' , @rmtpassword='RemoteServerPassword';其中,将
LinkedServerName替换为您想要创建的Linked Server的名称,将RemoteServerName替换为要连接的远程服务器的名称,将RemoteServerUsername和RemoteServerPassword替换为在远程服务器上访问的登录名和密码。无论是使用SSMS还是T-SQL命令,完成Linked Server的创建后,即可在SQL中使用该Linked Server连接到远程服务器上的数据。例如:
SELECT * FROM RemoteServerName.DatabaseName.SchemaName.TableName;其中,将
RemoteServerName替换为要连接的远程服务器的名称,DatabaseName替换为要访问的数据库名称,SchemaName替换为要访问的模式名称,TableName替换为要访问的表名称。总结起来,连接到其他服务器的关键是创建一个Linked Server,并在连接时使用正确的名称和凭据。连接成功后,即可在SQL中像访问本地数据库一样访问远程服务器上的数据。
1年前 -
在SQL中连接其他服务器可以使用外部表、链接服务器、OPENROWSET等方式。下面将对这三种方式进行详细介绍。
一、外部表(External Table)
外部表是一种将外部数据作为SQL Server中的表来访问的方法。使用外部表时,需要先在SQL Server中创建一个外部数据源,然后创建外部表来引用该数据源。外部数据源可以是另一个SQL Server实例、Excel文件、CSV文件等。创建外部表的步骤如下:
-
创建数据源:使用CREATE EXTERNAL DATA SOURCE语句来创建一个外部数据源。语法如下:
CREATE EXTERNAL DATA SOURCE data_source_name
WITH (
TYPE = {SQL Server | HADOOP | BLOB_STORAGE | …},
LOCATION = {'location_string'},
CREDENTIAL = credential_name
); -
创建外部表:使用CREATE EXTERNAL TABLE语句来创建一个外部表。语法如下:
CREATE EXTERNAL TABLE table_name
(
column1 data_type [COLLATE collation_name],
column2 data_type [COLLATE collation_name],
…
)
WITH
(
LOCATION = {'location_string'},
DATA_SOURCE = data_source_name
);
创建了外部表之后,可以像访问普通表一样对外部表进行查询、更新等操作。
二、链接服务器(Linked Server)
链接服务器是一种在SQL Server上建立一个与另一个SQL Server实例的连接的方法。链接服务器使得可以通过SQL Server访问其他服务器上的表、视图、存储过程等。链接服务器可以是同一台机器上的SQL Server实例,也可以是不同机器上的SQL Server实例。创建链接服务器的步骤如下:
-
在本地服务器上创建外部服务器:使用sp_addlinkedserver存储过程来创建链接服务器。
EXEC sp_addlinkedserver
@server = 'ServerName',
@srvproduct = '',
@provider = 'SQLNCLI',
@datasrc = 'ServerName\InstanceName'; -
在本地服务器上创建登录:如果需要在链接服务器上使用Windows身份验证方式登录,需要在本地服务器上创建一个登录。
EXEC sp_addlinkedsrvlogin
@rmtsrvname = 'ServerName',
@useself = 'true',
@locallogin = NULL;
创建链接服务器之后,可以像访问本地表一样对链接服务器上的对象进行查询、更新等操作。
三、OPENROWSET函数
OPENROWSET是一种使用完整的连接字符串直接访问其他服务器上的表的方法。可以在SELECT、INSERT、UPDATE等语句中使用OPENROWSET函数来引用远程服务器上的表。使用OPENROWSET函数的语法如下:
— SELECT语句
SELECT *
FROM OPENROWSET('Provider=SQLOLEDB;Data Source=ServerName;Initial Catalog=DatabaseName;User ID=Username;Password=Password',
'SELECT * FROM TableName')— INSERT语句
INSERT INTO TableName(column1, column2, …)
SELECT column1, column2, …
FROM OPENROWSET('Provider=SQLOLEDB;Data Source=ServerName;Initial Catalog=DatabaseName;User ID=Username;Password=Password',
'SELECT * FROM TableName')— UPDATE语句
UPDATE TableName
SET column1 = value1, column2 = value2, …
FROM OPENROWSET('Provider=SQLOLEDB;Data Source=ServerName;Initial Catalog=DatabaseName;User ID=Username;Password=Password',
'SELECT * FROM TableName')
WHERE condition;OPENROWSET函数与链接服务器类似,也可以使用Windows身份验证登录。需要注意的是,OPENROWSET函数需要在SQL Server配置管理器中启用“Ad Hoc Distributed Queries”选项。
1年前 -
-
在SQL中,可以通过使用链接服务器(Link Servers)来连接其他服务器,使得我们可以在一个数据库上执行查询,访问另一个服务器上的表和数据。下面是连接其他服务器的操作流程:
- 配置链接服务器:首先,需要在SQL Server中配置链接服务器。可以通过SQL Server Management Studio (SSMS)或者使用T-SQL语句来完成。以下是使用T-SQL语句来创建链接服务器的示例:
EXEC sp_addlinkedserver @server='LinkedServerName', @srvproduct=' ', @provider='SQLOLEDB', @datasrc='ServerName\InstanceName'这里的
LinkedServerName是你想要为链接服务器指定的名称,ServerName\InstanceName是指定的服务器名和实例名。- 配置登陆凭据:如果需要在连接到链接服务器之前进行身份验证,则需要配置登陆凭据。我们可以使用以下语句创建登录帐户信息:
EXEC sp_addlinkedsrvlogin @rmtsrvname='LinkedServerName', @useself='false', @locallogin=NULL, @rmtuser='RemoteUsername', @rmtpassword='RemotePassword'这里的
LinkedServerName是你在第一步中为链接服务器指定的名称,RemoteUsername和RemotePassword分别是远程服务器上的用户名和密码。- 执行查询:现在连接到远程服务器并执行查询。以下是一些示例查询:
-- 选择链接服务器中的表 SELECT * FROM LinkedServerName.database.schema.table -- 更新链接服务器上的数据 UPDATE LinkedServerName.database.schema.table SET column = value WHERE condition -- 删除链接服务器上的数据 DELETE FROM LinkedServerName.database.schema.table WHERE condition -- 向链接服务器插入数据 INSERT INTO LinkedServerName.database.schema.table (column1, column2, ...) VALUES (value1, value2, ...)其中,
LinkedServerName是你在第一步中为链接服务器指定的名称,database是链接服务器上的数据库名,schema.table是链接服务器上的表名。- 删除链接服务器:如果不再需要链接服务器,可以使用以下语句将其从SQL Server中删除:
EXEC sp_dropserver 'LinkedServerName', 'droplogins'这里的
LinkedServerName是你在第一步中为链接服务器指定的名称。总结:
通过上述方法,我们可以在SQL中连接到其他服务器。首先需要配置链接服务器,然后配置登录凭据,最后在查询中使用链接服务器的名称来执行操作。1年前