sqlserver跨库查询sp_addlinkedserver和sp_addlinkedsrvlogin

示例

如果只是临时访问,可以直接用openrowset

–查询示例

select * from openrowset(‘SQLOLEDB’,’sql服务器名’;’用户名’;’密码’,数据库名.dbo.表名)

官方文档

示例补充:

exec sp_addlinkedserver ‘srv_lnk’,”,’SQLOLEDB’,’远程服务器名或ip地址’
exec sp_addlinkedsrvlogin ‘srv_lnk’,’false’,null,’用户名’,’密码’

sp_addlinkedsrvlogin 的参数:

sp_addlinkedsrvlogin [ @rmtsrvname = ] 'rmtsrvname'   
     [ , [ @useself = ] { 'TRUE' | 'FALSE' | NULL } ]   
     [ , [ @locallogin = ] 'locallogin' ]   
     [ , [ @rmtuser = ] 'rmtuser' ]   
     [ , [ @rmtpassword = ] 'rmtpassword' ]   

下面引用都是机翻_(:з)∠)_
rmtsrvname
sp_addlinkedserver设置的别名

useself

确定是通过模拟本地登录名还是显式提交登录名和密码来连接到rmtsrvname。数据类型为varchar(8),默认值为TRUE。
值为TRUE表示登录名使用其自己的凭据连接到rmtsrvname,而rmtuser和rmtpassword参数被忽略。FALSE指定rmtuser和rmtpassword参数用于连接到指定locallogin的rmtsrvname。如果rmtuser和rmtpassword也设置为NULL,则不使用登录名或密码来连接到链接的服务器

总之你sp_addlinkedserver设置的是本地就默认true。

locallogin

是本地服务器上的登录名。locallogin是sysname,默认值为NULL。NULL指定此条目适用于连接到rmtsrvname的所有本地登录。如果不为NULL,则locallogin可以是SQL
Server登录名或Windows登录名。必须已直接或通过Windows登录名(已授予Windows组的访问权限)授予Windows登录名对SQL
Server的访问权限。

rmtuser

当@useself为FALSE时, 是否使用远程登录名连接到rmtsrvname。当远程服务器是不使用Windows身份验证的SQL
Server实例时,rmtuser是SQL Server登录名。rmtuser是sysname,默认值为NULL。

rmtpassword

是与rmtuser关联的密码。rmtpassword是sysname,默认值为NULL。

sp_addlinkedserver还可以用来建立excel、文本文件等等链接。具体参考官方文档

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页