博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
远程执行SQL或远程调用存储过程
阅读量:5939 次
发布时间:2019-06-19

本文共 3970 字,大约阅读时间需要 13 分钟。

hot3.png

    --远程连接     if ( not exists(select * from sys.servers where name='remotedb'))     begin		EXEC   sp_addlinkedserver        		   @server='remotedb',--被访问的服务器别名         		   @srvproduct='',        		   @provider='SQLOLEDB',       		   @datasrc='192.168.0.153'   --要访问的服务器 	end     EXEC sp_addlinkedsrvlogin  --登录映射           'remotedb', --被访问的服务器别名            'false',             NULL,             'sa', --帐号            '123456' --密码     --使用:
若使用过程中,提示找不到remotedb,可能是因为在sql cmd窗口执行的时序问题,可以在登录映射完了后,加一条go语句     select * from remotedb.mydb.dbo.tablename      exec remotedb.mydb.dbo.ProcedureName  --删除登录映射和服务器映射

    Exec sp_droplinkedsrvlogin remotedb,Null       --删除映射(录与链接服务器上远程登录之间的映射)

    Exec sp_dropserver  remotedb                    --删除远程服务器链接

以下附上sp_addlinkedserver   和sp_addlinkedsrvlogin   的参数说明

sp_addlinkedserver

创建一个链接的服务器,使其允许对分布式的、针对 OLE DB 数据源的异类查询进行访问。在使用 sp_addlinkedserver 创建链接的服务器之后,此服务器就可以执行分布式查询。如果链接服务器定义为 Microsoft® SQL Server™,则可执行远程存储过程。

语法

sp_addlinkedserver

 [ 'server'

    @srvproduct = 'product_name]
    'provider_name']
    @datasrc = 'data_source']
    'location']
    @provstr = 'provider_string']
    @catalog = 'catalog']

参数

@server = 'server'

要创建的链接服务器的本地名称,server 的数据类型为 sysname,没有默认设置。

如果有多个 SQL Server 实例,server 可以为 servername\instancename。此链接的服务器可能会被引用为下面示例的数据源:

@srvproduct = 'product_name'

要添加为链接服务器的 OLE DB 数据源的产品名称。product_name 的数据类型为 nvarchar(128),默认设置为 NULL。如果是 SQL Server,则不需要指定 provider_namedata_sourcelocationprovider_string 以及目录。

@provider = 'provider_name'

与此数据源相对应的 OLE DB 提供程序的唯一程序标识符 (PROGID)。provider_name 对于安装在当前计算机上指定的 OLE DB 提供程序必须是唯一的。provider_name的数据类型为nvarchar(128),默认设置为 NULL。OLE DB 提供程序应该用给定的 PROGID 在注册表中注册。

@datasrc = 'data_source'

由 OLE DB 提供程序解释的数据源名称。data_source 的数据类型为 nvarchar(4000),默认设置为 NULL。data_source被当作 DBPROP_INIT_DATASOURCE 属性传递以便初始化 OLE DB 提供程序。

当链接的服务器针对于 SQL Server OLE DB 提供程序创建时,可以按照 servername\instancename 的形式指定data_source,它可以用来连接到运行于特定计算机上的 SQL Server 的特定实例上。servername 是运行 SQL Server 的计算机名称,instancename 是用户将被连接到的特定 SQL Server 实例的名称。

@location = 'location'

OLE DB 提供程序所解释的数据库的位置。location 的数据类型为 nvarchar(4000),默认设置为 NULL。location作为 DBPROP_INIT_LOCATION 属性传递以便初始化 OLE DB 提供程序。

@provstr = 'provider_string'

OLE DB 提供程序特定的连接字符串,它可标识唯一的数据源。provider_string 的数据类型为 nvarchar(4000),默认设置为 NULL。Provstr 作为 DBPROP_INIT_PROVIDERSTRING 属性传递以便初始化 OLE DB 提供程序。

当针对 Server OLE DB 提供程序提供了链接服务器后,可将 SERVER 关键字用作 SERVER=servername\instancename 来指定实例,以指定特定的 SQL Server 实例。servername 是 SQL Server 在其上运行的计算机名称,instancename 是用户连接到的特定的 SQL Server 实例名称。

@catalog = 'catalog'

建立 OLE DB 提供程序的连接时所使用的目录。catalog 的数据类型为sysname,默认设置为 NULL。catalog作为 DBPROP_INIT_CATALOG 属性传递以便初始化 OLE DB 提供程序。

 

sp_addlinkedsrvlogin

创建或更新本地 Microsoft® SQL Server™ 实例上的登录与链接服务器上远程登录之间的映射。

语法

sp_addlinkedsrvlogin [ @rmtsrvname = ]'rmtsrvname'

    @useself = 'useself']
    
[ , [ @locallogin = 'locallogin']
    @rmtuser = 'rmtuser']
    
@rmtpassword = 'rmtpassword]

参数

[@rmtsrvname ='rmtsrvname'

是应用登录映射的链接服务器名称。rmtsrvname 的数据类型为 sysname,没有默认设置。

[@useself ='useself'

决定用于连接到远程服务器的登录名称。useself 的数据类型为 varchar(8),默认设置为 TRUE。true 值指定 SQL Server 验证的登录使用其自己的凭据以连接到rmtsrvname,而忽略 rmtuser 和 rmtpassword 参数。false 值指定rmtuser 和 rmtpassword 参数用来连接到特定 locallogin 的 rmtsrvname。如果rmtuser 和 rmtpassword 也设置为 NULL,则连接链接服务器不需使用任何登录或密码。对于 Windows NT 身份验证登录而言,useself为 true 则无效,除非 Microsoft Windows NT® 环境支持安全帐户委托,并且,提供程序支持 Windows 身份验证(此时不再需要创建值为true 的映射,不过创建仍然有效)。

@locallogin ='locallogin'

本地服务器上的登录。locallogin 的数据类型为 sysname,默认设置为 NULL。NULL 值指定此条目将应用于所有连接到rmtsrvname 的本地登录。如果值不为 NULL,则 locallogin 可以是一个 SQL Server 登录或 Windows NT 用户。必须授予 Windows NT 用户直接访问 SQL Server 或通过其作为已授予访问权限的组的成员来访问 SQL Server 的权限。

[@rmtuser ='rmtuser'

当 useself 为 false 时,用来连接 rmtsrvname的用户名,rmtuser 的数据类型为 sysname,默认设置为 NULL。

[@rmtpassword ='rmtpassword'

与 rmtuser 相关的密码。rmtpassword 的数据类型为 sysname,默认设置为 NULL。

返回代码值

0(成功)或 1(失败)

转载于:https://my.oschina.net/u/200350/blog/480473

你可能感兴趣的文章
每日问题记录20171117
查看>>
【spring boot】10.spring boot下的单元测试
查看>>
基本算法系列15天速成
查看>>
IntelliJ IDEA(2017)安装和破解
查看>>
ubuntu16.04忘了root密码
查看>>
《Unix&Linux大学教程》学习笔记一:历史与常识
查看>>
java的list类
查看>>
Android setOnPageChangeListener 过时了怎么办?
查看>>
途牛订单的服务化演进
查看>>
npm太慢, 淘宝npm镜像使用方法
查看>>
server环境信息【C#代码获取】
查看>>
LINQ to SQL活学活用(1):这要打破旧观念
查看>>
linux内核数据结构之链表
查看>>
博弈论入门之威佐夫博弈
查看>>
Java关键字——instanceof
查看>>
Linux进程描述符task_struct结构体详解--Linux进程的管理与调度(一)
查看>>
美妆算法---人脸审美标准
查看>>
null in JavaScript
查看>>
CentOS安装和配置Mysql
查看>>
Spring boot 嵌入的tomcat不能启动: Unregistering JMX-exposed beans on shutdown
查看>>