• 跨数据库的数据操作


    不同服务器数据库之间的数据操作

    不同数据库之间复制表的数据的方法:

    当表目标表存在时:

    insert into 目的数据库..表 select * from 源数据库..表  

    当目标表不存在时:

    select * into 目的数据库..表 from 源数据库..表

    --如果在不同的SQL之间: 

    insert into openrowset('sqloledb','目的服务器名';'sa';'',目的数据库.dbo.表) 
    select * from 源数据库..表 

    --创建链接服务器 
    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 ' 

    -----------------------------------------------------------------------------------------------------------------------------------

    好吧,如果上面看得烦下面有个更容易理解的例子:

    Exec sp_droplinkedsrvlogin DBVIP,Null
    Exec sp_dropserver DBVIP

    EXEC sp_addlinkedserver
          @server='DBVIP',--被访问的服务器别名 
          @srvproduct='',
          @provider='SQLOLEDB',
          @datasrc='Server2'   --要访问的服务器


    EXEC sp_addlinkedsrvlogin 
         'DBVIP', --被访问的服务器别名
         'false', 
         NULL, 
         'sa', --帐号
         'thankyoubobby' --密码


    Select   *   from DBVIP.pubs.dbo.orders   


    /////////////////////////////ORACLE////////////////////////////
    Exec sp_droplinkedsrvlogin demo,Null
    Exec sp_dropserver demo
    go

    EXEC sp_addlinkedserver 
            @server ='demo',
            @srvproduct='Oracle',
       @provider='MSDAORA', 
       @datasrc='ServiceName' 
      

    EXEC sp_addlinkedsrvlogin 
         'demo', 
         'false', 
         NULL, 
         'userid', 
         'password' 
    go

    -------------------------------------------具体例子------------------------------------------------------------

    if   exists(select   1   from   master.dbo.sysservers   where   srvname   =   'test')   
    begin   
    exec   sp_droplinkedsrvlogin     'test','sa'   
    exec   sp_dropserver     'test'   
    end  

    --建立连接服务器 
    EXEC sp_addlinkedserver 'test', 'ms','SQLOLEDB', '192.168.1.99'


    exec sp_addlinkedsrvlogin 'test','false',null,'sa',''
    select * from test.db_film.dbo.T_film
    go

    if   exists(select   1   from   master.dbo.sysservers   where   srvname   =   'test')   
    begin   
    exec   sp_droplinkedsrvlogin     'test','sa'   
    exec   sp_dropserver     'test'   
    end  

    go

  • 相关阅读:
    0 到 1 掌握:Vue 核心之数据双向绑定
    前端性能优化, 从哪些方面入手? (缩略版)
    MDN中定义的Function.prototype.call()和apply()与bind()
    应聘前端开发的一次笔试题目(某数据挖掘分析公司)
    应聘前端开发的一次笔试题目(某电信子公司)
    应聘前端开发的一次笔试题目(某外资公司)
    算法之杨辉三角形(Java语言)
    算法之求质数(Java语言)
    微信小程序背景
    备份恢复(一)
  • 原文地址:https://www.cnblogs.com/kingsony/p/4013552.html
Copyright © 2020-2023  润新知