加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQLSERVER存储过程调用不同数据库的数据_存储过程中通过链接服务

发布时间:2020-12-12 14:28:03 所属栏目:MsSql教程 来源:网络整理
导读:存储过程调用不同数据库的数据 在存储过程调用不同数据库的数据该如何做,比如在存储过程名为AAA的存储过程里面调用数据库为hudu1,hudu2,hudu3里面的数据来统计? 在同一台数据库服务器上:?? select?? *?? from?? hudu1.dbo.表名?? select?? *?? from?? hud

存储过程调用不同数据库的数据

在存储过程调用不同数据库的数据该如何做,比如在存储过程名为AAA的存储过程里面调用数据库为hudu1,hudu2,hudu3里面的数据来统计?
在同一台数据库服务器上:??
select?? *?? from?? hudu1.dbo.表名??
select?? *?? from?? hudu2.dbo.表名??
select?? *?? from?? hudu3.dbo.表名??
???
在不同数据库服务器上:??
select?? *?? from?? openrowset('SQLOLEDB','sql服务器1';'用户名';'密码',hudu1.dbo.表名)??
select?? *?? from?? openrowset('SQLOLEDB','sql服务器2';'用户名';'密码',hudu2.dbo.表名)??
select?? *?? from?? openrowset('SQLOLEDB','sql服务器3';'用户名';'密码',hudu3.dbo.表名)

下面的方法可以参考:
方法一:用OPENDATASOURCE?? 方法去操作异地数据库??
???
declare?? @i?? int??
set?? @i=1??
select?? *?? from?? OPENDATASOURCE('SQLOLEDB','Data?? Source=IP地址;User?? ID=sa;Password=密码').异地数据库名.dbo.表名?? A?? inner?? join?? 本地数据库名..表名?? B??
on?? A.关联字段=B.关联字段?? and?? A.字段名称??
???
???
?????
--方法二:如果经常访问或数据量大,建议用链接服务器??
?????
--创建链接服务器??
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'??
???
?????
--如果只是临时访问,可以直接用openrowset??
--查询示例??
select?? *?? from?? openrowset('SQLOLEDB'??
???,'sql服务器名';'用户名';'密码'??
???,数据库名.dbo.表名)??
?????
???
--导入示例??
select?? *?? into?? 表?? from?? openrowset('SQLOLEDB'??
???,数据库名.dbo.表名)??

?? 错误7405:异类查询要求为连接设置ANSI-NULL和ANSI-WARNNINGS选项,这将确保一致的查询语意,请启用这些选项,然后重新发出查询
解决方法:
?? SET?? ANSI_NULLS?? ON??
????? SET?? ANSI_WARNINGS?? ON??
?????? GO??
????????? CREATE?? PROCEDURE?? ....

SQL SERVER存储过程中通过链接服务器访问远程服务器SQL实战

SQLSERVER的开发中,经常会碰到跨物理服务器跨数据库的访问和操作。 下面来分析下在存储过程中创建远程访问的完整例子. 需求: 在A服务器上有Card数据库,Card数据库有存储过程proc_Card;??? 在B服务器上有AccountDB数据库,AccountDB下有Up_account存储过程。 现在需要在执行proc_Card最后,调用一次Up_account存储过程,以实现不同服,不同数据库的数据同步. 分析: 1. 存储过程中调用存储过程不是问题,??????????????? Execute '存储过程名字' ??????????????? 存储过程参数1=参数1的值,???????????????? ??????????????? 参数2=参数2的值 ???????????????? ...... ??????? 2. 如何在A服上创建对B服务器 SQLSERVER的访问呢? ??????????????? 首先不得不提的是SQLSERVER链接服务器,在sql 2K中 企业管理器===>安全性===>链接服务器. ??????????????? SQLSERVER2005 or 2008中 Maragement studio 服务器对象==>链接服务器。 ??????????????? 这个链接服务器对象是如何来的? ??????????????????????? 默认情况下会只有本机一个,链接服务器名就是本机机器名,通过系统存储过程Execute???? sp_helpserver 可以查看,显示为name字段 ?? 如何新增链接服务器 ? ?? A. 通过向导, ??? 1. 右键链接服务器--->新增链接服务器 ????????? 2. 输入链接服务器名[ 需要访问的服务器的机器名或是IP,如果别名无法解析到,则使用IP ] ,指定服务器类型为SQL SERVER,??? 3. 在安全性中选择'使用此安全上下文建立连接' 指定需要访问的服务器的SQL 登录账号和密码 ??? 4。点确定,刷新链接服务器,则可视配置的链接服务器信息 ???????? B. 通过系统存储过程,??? 建立链接sql server服务器,通常有两种情况: ??? 1. 第一种情况,产品选”sql server” ???? EXEC sp_addlinkedserver ???? @server='linkServerName',???? @srvproduct = N'SQL Server' ???? 这种情况,@server (linkServerName)就是要链接的sqlserver服务器名或者ip地址。 ??? 2.第二种情况,访问接口选“Microsoft OLE DB Provider Sql Server”或“Sql Native Client” ???? EXEC sp_addlinkedserver?? ???? @server=' linkServerName ',???? @srvproduct='',???? @provider='SQLNCLI',???? @datasrc='sqlServerName' ???? 这种情况,@datasrc(sqlServerName)就是要链接的实际sqlserver服务器名或者ip地址。 ??? 3.Sql server数据库引擎是通过上面设置的服务器名或者ip地址访问链接服务器,DTC服务也是通过服务器名或者ip地址访问链接服务器,所以要保证数据库引擎和DTC都能通过服务器名或者ip地址访问到链接服务器。 ?? 建立了链接,创建了数据库的登录访问: ??? EXEC sp_addlinkedsrvlogin ??? '上面创建的链接服务器的别名或是IP',--被访问的服务器别名 ??? 'false',??? NULL,??? '账号',--帐号 ??? '登录密码' --密码 ?? 接下来就可以通过链接服务器来访问服务器B的AccountDB库下up_account存储过程了: ??? Execute [链接服务器别名].库名.dbo.存储过程 ?? 工作似乎已经结束了,但此时发现,执行存A服存储过程时会报 '未将[所用到的别名] 服务器配置为可用的RPC',如何解决? ????????? 很简单,查看链接服务器的选项,将RPC RPC_Out 值由False 改为 TRUE 再调试,成功! ??? 也有情况在这里无法更改,解决方案是: ???? exec sp_configure 'show advanced options',1; --默认是0??? ???? GO?? ???? RECONFIGURE WITH OVERRIDE; ???? GO

存储过程调用不同数据库的数据_SQL SERVER存储过程中通过链接服务器访问远程服务器SQL实战_SQLSERVER跨平台数据访问

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读