如何使用调用远程数据库的存储过程

如何使用调用远程数据库的存储过程,第1张

SQL code

--访问不同电脑上的数据库(远程只要联好网就一样)

--如果经常访问或数据量大,建议用链接服务器

--创建链接服务器

exec sp_addlinkedserver 'srv_lnk ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 '

exec sp_addlinkedsrvlogin 'srv_lnk ', 'false ',null, '用户名 ', '密码 '

go

--查询示例

select * from srv_lnk.数据库名.dbo.表名

--导入示例

select * into 表 from srv_lnk.数据库名.dbo.表名

go

--处理完成后删除链接服务器

exec sp_dropserver 'srv_lnk ', 'droplogins '

一个存储过程既是一个系统的标准组件,也是一个可编程的函数,它在数据库中创建并保存,总体来说关系数据库系统中存在如下几大类型存储过程。

1.系统存储过程系统存储过程以sp_开头,用来进行系统的各项设定,取得系统的各项信息,管理系统的各项相关工作。

2.本地存储过程本地存储过程由用户创建,是为了完成某一特定功能的SQL语句集。事实上,一般所说的存储过程就是指本地存储过程。

3.临时存储过程临时存储过程分为本地临时存储过程、全局临时存储过程两种。

((1)本地临时存储过程。以井字号(#)作为其名称的第一个字符,则该存储过程将成为一个存放在tempdb数据库中的本地临时存储过程,且只有创建它的用户才能执行它。

(2)全局临时存储过程。以两个井字号(##)开始,则该存储过程将成为一个存储在tempdb数据库中的全局临时存储过程。全局临时存储过程一旦创建,以后连接到服务器的任意用户都可以执行它,而且不需要特定的权限。

4.远程存储过程在特定数据库中,远程存储过程是位于远程服务器上的存储过程,通常可以使用分布式查询和EXECUTE命令执行一个远程存储过程。

5.扩展存储过程扩展存储过程是用户使用外部程序语言编写的存储过程,扩展存储过程的名称通常以xp_开头。

能不能执行存储过程取决于你的dblink那个数据库的用户的权限,比如你这边的数据库用户A,是另外一个数据库的dblink用户,那么另外那个数据库的用户是利用A用户进行操作的。一般都是select,执行存储过程什么的,是看的A的权限。

不过我要梯形下,就选你insert,提示成功,可是实际并咩有插入,因为insert后,那个dblink的session就已经关闭了,commit并不能确认。所以我们一般是通过远程控制存储过程解决的这个问题。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/70958.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-02
下一篇2023-03-02

发表评论

登录后才能评论

评论列表(0条)

    保存