MyException - 我的反常网
当时方位:我的反常网» Sql Server » mssql 两个数据库对接数据,该怎样处理

mssql 两个数据库对接数据,该怎样处理

www.x8vin4.com  网友共享于:2015-08-26  阅读:113次
mssql 两个数据库对接数据
 
  本地数据库 称为A 长途的服务器称为B (ip 数据库名 账户 暗码都知道)


  现在我想每天把数据库固定一段时刻把A数据库A表的数据 导入B数据库的B表  

  怎样履行啊 比方B数据库的ip是219.249.136.120


怎样操作!!

------处理方案--------------------
SQL code
--不同服务器数据库之间的数据操作(来自小F)
--************************************************************************************
1、--创立链接服务器 
exec sp_addlinkedserver   'ITSV', ' ', 'SQLOLEDB', '长途服务器名或ip地址 ' 
exec sp_addlinkedsrvlogin  'ITSV', 'false ',null, '用户名', '暗码' 


2、发动两台服务器的MSDTC服务 
MSDTC服务供给分布式业务服务,假如要在数据库中运用分布式业务,必须在参加的两边服务器发动MSDTC(Distributed Transaction Coordinator)服务。

3、翻开两边的135端口
MSDTC服务依赖于RPC(Remote Procedure Call (RPC))服务,RPC运用135端口,确保RPC服务发动,假如服务器有防火墙,确保135端口不被防火墙挡住。
运用“telnet IP 135”指令测验对方端口是否对外敞开。也可用端口扫描软件(比方Advanced Port Scanner)扫描端口以判别端口是否敞开


4、--如要创立触发器   
create   trigger   t_test   on   test   
for   insert,update,delete   
as 
--加上下面两句,否则会提示新业务不能挂号到指定业务处理器
set    xact_abort   on  
begin  distributed   tran 
    delete   from   openrowset('sqloledb','xz';'sa';'',test.dbo.test)   
    where   id   in(select   id   from   deleted)   
    insert   into   openrowset('sqloledb','xz';'sa';'',test.dbo.test)   
    select   *   from   inserted   
commit tran

--查询示例 
select * from ITSV.数据库名.dbo.表名 

--导入示例 
select * into 表 from ITSV.数据库名.dbo.表名 

--今后不再运用时删去链接服务器 
exec sp_dropserver  'ITSV ', 'droplogins '

------处理方案--------------------
SQL code

EXEC sp_addlinkedserver
      @server='DBVIP',--被拜访的服务器别号(恣意的称号)
      @srvproduct='',
      @provider='SQLOLEDB',
      @datasrc='MYSQLServer'   --要拜访的服务器(SQL SERVER实例名)

EXEC sp_addlinkedsrvlogin
     'DBVIP', --被拜访的服务器别号
     'false',
     NULL,
     'sa', --登陆链接服务器的帐号
     '1q2w3e4R' --登陆链接服务器的暗码

--检查已注册的链接服务器
--exec sp_linkedservers

--把本地的表数据刺进到链接服务器上的表中
SELECT * INTO DBVIP.database_name.dbo.table_name FROM local_table_name
--DBVIP.database_name.dbo.table_name 长途服务器完好表名(必须用4部分表明)
--local_table_name 本地表名

--用完后可删去
--Exec sp_droplinkedsrvlogin DBVIP,NULL --删去链接服务器的登陆帐户
--Exec sp_dropserver DBVIP --删去链接服务器


/*******************************

在运用openrowset/opendatasource前搜先要启用Ad Hoc Distributed Queries服务,由于这个服务不安全所以SqlServer默许是封闭的

启用Ad Hoc Distributed Queries的办法

SQL Server 阻挠了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 

的拜访,由于此组件已作为此服务器安全装备的一部分而被封闭。系统管理员能够经过运用 

sp_configure 启用 'Ad Hoc Distributed Queries'。有关启用 'Ad Hoc Distributed Queries' 的具体

信息,请参阅 SQL Server 联机丛书中的 "外围运用装备器"。
启用Ad Hoc Distributed Queries的办法,履行下面的查询句子就能够了:

exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
运用结束后,记住一定要要封闭它,由于这是一个安全隐患,紧记履行下面的SQL句子

exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure  

*******************************/

--创立链接服务器 
exec sp_addlinkedserver   'ITSV ', ' ', 'SQLOLEDB ', '长途服务器名或ip地址 ' 
exec sp_addlinkedsrvlogin 'ITSV ', 'false ',null, '用户名 ', '暗码 ' 

--查询示例 
select * from ITSV.数据库名.dbo.表名 

--导入示例 
select * into 表 from ITSV.数据库名.dbo.表名 

--今后不再运用时删去链接服务器 
exec sp_dropserver  'ITSV ', 'droplogins ' 

--衔接长途/局域网数据(openrowset/openquery/opendatasource) 
--1、openrowset 

--查询示例 
select * from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '暗码 ',数据库名.dbo.表名) 

--生成本地表 
select * into 表 from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '暗码 ',数据库名.dbo.表名) 

--把本地表导入长途表 
insert openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '暗码 ',数据库名.dbo.表名) 
select *from 本地表 

--更新本地表 
update b 
set b.列A=a.列A 
from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '暗码 ',数据库名.dbo.表名)as a inner join 本地表 b 
on a.column1=b.column1 

--openquery用法需求创立一个衔接 

--首要创立一个衔接创立链接服务器 
exec sp_addlinkedserver   'ITSV ', ' ', 'SQLOLEDB ', '长途服务器名或ip地址 ' 
--查询 
select * 
FROM openquery(ITSV,  'SELECT *  FROM 数据库.dbo.表名 ') 
--把本地表导入长途表 
insert openquery(ITSV,  'SELECT *  FROM 数据库.dbo.表名 ') 
select * from 本地表 
--更新本地表 
update b 
set b.列B=a.列B 
FROM openquery(ITSV,  'SELECT * FROM 数据库.dbo.表名 ') as a  
inner join 本地表 b on a.列A=b.列A 

--3、opendatasource/openrowset 
SELECT   * 
FROM   opendatasource( 'SQLOLEDB ',  'Data Source=ip/ServerName;User ID=登陆名;Password=暗码 ' ).test.dbo.roy_ta 
--把本地表导入长途表 
insert opendatasource( 'SQLOLEDB ',  'Data Source=ip/ServerName;User ID=登陆名;Password=暗码 ').数据库.dbo.表名 
select * from 本地表

文章谈论

什么才是优异的用户界面设计
什么才是优异的用户界面设计
程序员必看的十大电影
程序员必看的十大电影
60个开发者不容错失的免费资源库
60个开发者不容错失的免费资源库
Java 与 .NET 的渠道开展之争
Java 与 .NET 的渠道开展之争
程序员都该阅读的书
程序员都该阅读的书
那些性感的让人尖叫的程序员
那些性感的让人尖叫的程序员
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
总结2014我国互联网十大段子
总结2014我国互联网十大段子
每天作业4小时的程序员
每天作业4小时的程序员
程序员周末都喜爱做什么?
程序员周末都喜爱做什么?
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
程序员和编码员之间的差异
程序员和编码员之间的差异
老美怎样看待阿里赴美上市
老美怎样看待阿里赴美上市
为什么程序员都是夜猫子
为什么程序员都是夜猫子
我换岗是由于他们的显示器更大
我换岗是由于他们的显示器更大
程序员最惧怕的5件事 你中招了吗?
程序员最惧怕的5件事 你中招了吗?
我是怎样打败延迟症的
我是怎样打败延迟症的
编程言语是女性
编程言语是女性
怎样区别一个程序员是“内行“仍是“新手“?
怎样区别一个程序员是“内行“仍是“新手“?
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
游览,写作,编程
游览,写作,编程
漫画:程序员的作业
漫画:程序员的作业
怎样成为一名黑客
怎样成为一名黑客
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
不明白技能不要对懂技能的人说这很简单完成
不明白技能不要对懂技能的人说这很简单完成
程序员眼里IE阅读器是什么样的
程序员眼里IE阅读器是什么样的
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
2013年我国软件开发者薪资调查报告
2013年我国软件开发者薪资调查报告
我的老公是个程序员
我的老公是个程序员
Java程序员必看电影
Java程序员必看电影
初级 vs 高档开发者 哪个性价比更高?
初级 vs 高档开发者 哪个性价比更高?
那些争议最大的编程观念
那些争议最大的编程观念
写给自己也写给你 自己究竟该何去何从
写给自己也写给你 自己究竟该何去何从
团队中“技能大拿”并非越多越好
团队中“技能大拿”并非越多越好
Web开发者需具有的8个好习惯
Web开发者需具有的8个好习惯
程序猿的兴起——Growth Hacker
程序猿的兴起——Growth Hacker
5款最佳正则表达式修改调试器
5款最佳正则表达式修改调试器
一个程序员的时刻管理
一个程序员的时刻管理
程序员的轻视链
程序员的轻视链
看13位CEO、开创人和高管怎样进步作业功率
看13位CEO、开创人和高管怎样进步作业功率
不为人知的编程本相
不为人知的编程本相
程序员应该重视的一些事儿
程序员应该重视的一些事儿
科技史上最臭名远扬的13大罪犯
科技史上最臭名远扬的13大罪犯
 程序员的姿态
程序员的姿态
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
老程序员的下场
老程序员的下场
“懒”出功率是程序员的美德
“懒”出功率是程序员的美德
Google伦敦新总部 犹如星级庄园
Google伦敦新总部 犹如星级庄园
2013年美国开发者薪资调查报告
2013年美国开发者薪资调查报告
软件开发程序过错反常ExceptionCopyright © 2009-2015 MyException 版权所有