1)sp_addlinkedserver
Description: Create a linked server, you can query a remote database through a linked server
grammar:
sp_addlinkedserver @ server = 'Alias Server' - Custom
@srvproduct = '' - General Default fill in the blank: As SQL server
Provider = @ ' provider_name
' - corresponding to this data source the OLE DB unique identifier for programming: As SQLNCLI
DATASRC = @ ' data_source
' - data source access path: The 127.0.0.1,1433
@location = '' - generally fill in the blank,
@provstr = '' - unique identification of the data source OLE DB provider-specific connection string, generally fill in the blank
@catalog = '' - the data directory, generally written to access the database name
Sample code:
USE master
GO
--定义一个链接服务器
EXEC sp_addlinkedserver @server=N'MyLinkServer',--连接服务器别名自定义,代表定义的连接服务器
@srvproduct=N'',---可以为空,默认为SQLserver
--@provider=N'SQLNCLI',--注册oledb访问接口,SQLNCLI使用sqlserver2005以上
@datasrc=N'58.148.63.172,1433',--数据源路径:此格式访问默认实例
@provider=N'SQLOLEDB',--注册oledb访问接口,SQLOLEDB适用sqlserver2000
--@datasrc=N'127.0.0.1';测试OK
@catalog=N'SMSDB'--要访问的数据库(可选)
GO
--查看所有可用的服务器系统信息
exec sp_helpserver
--查看链接服务器配置信息
exec sp_linkedservers
2)sp_addlinkedsrvlogin
Description: create or update maps on a local instance of SQL Server logins and remote servers between security account, use sp_addlinkedsrvlogin to specify login credentials used to log on the local server linked server.
grammar:
sp_addlinkedsrvlogin @ rmtsrvname = 'rmtname' - link server alias
@ Useself = {true | false | null} - true representation windows login credentials, false representation sql account password, null means no secret account login
@ Locallogin = 'locallogin' - login on the local server, the default is empty
@rmtuser = '' - sql username
@rmtpassword = '' - sql password
Sample code:
--定义一个远程映射登陆名
EXEC sp_addlinkedsrvlogin @rmtsrvname=N'MyLinkServer',
@useself=N'false',
@locallogin=null,
@rmtuser='sa',
@rmtpassword='123456';
Synthesis: Use sp_addlinkedserver to create the linked server, and then sp_addlinkedsrvlogin increase user login link, complete remote access remote data code is as follows
USE master
GO
--定义一个链接服务器
EXEC sp_addlinkedserver @server=N'MyLinkServer',--连接服务器别名自定义,代表定义的连接服务器
@srvproduct=N'',---可以为空,默认为SQLserver
--@provider=N'SQLNCLI',--注册oledb访问接口,SQLNCLI使用sqlserver2005以上
@datasrc=N'58.148.63.172,1433',--数据源路径:此格式访问默认实例
@provider=N'SQLOLEDB',--注册oledb访问接口,SQLOLEDB适用sqlserver2000
--@datasrc=N'127.0.0.1';测试OK
@catalog=N'SMSDB'--要访问的数据库(可选)
GO
--定义一个远程映射登陆名
EXEC sp_addlinkedsrvlogin @rmtsrvname=N'MyLinkServer',
@useself=N'false',
@locallogin=null,
@rmtuser='sa',--远程sql登陆名
@rmtpassword='123456';远程sql登陆密码
GO
--通过链接服务器查询远程数据
SELECT TOP 10 * FROM MyLinkServer.SMSDB.dbo.USERACCOUNT ORDER BY Col001
search result:
- Query information available servers
EXEC sp_helpserver;
result:
- View linked server configuration information
exec sp_linkedservers;
- Remove the linked server logins
--sp_droplinkedsrvlogin
Description: The existing mapping between a login on the linked server to log on to delete the local server running SQL Server
Syntax: spdroplinkedsrvlogin @ rmtsrvname = 'servername' - a remote server alias link
@ locallogin = 'locallogin' - login mapping to the linked server on the local server rmtsrvname
Example:
execute sp_droplinkedsrvlogin @rmtsrvname='MyLinkServer',--链接服务器名MyLinkServer
@locallogin=null
- Delete server
sp_dropserver
Description: List from the local SQL Server instance known remote servers and linked server to remove the server
grammar:
sp_dropserver [ @server = ] 'server' --服务器名
[ , [ @droplogins = ] { 'droplogins' | NULL} ]--默认为NULL
Example: Remove link server MyLinkServer
execute sp_dropserver @server='MyLinkServer',@droplogins='droplogins'