久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

SQL本地調(diào)用不同數(shù)據(jù)庫(kù)的數(shù)據(jù)方法匯總[Access軟件網(wǎng)]

 江海報(bào)覽 2014-01-06


摘 要:在存儲(chǔ)過程調(diào)用不同數(shù)據(jù)庫(kù)的數(shù)據(jù)該如何做,,比如在存儲(chǔ)過程名為AAA的存儲(chǔ)過程里面調(diào)用數(shù)據(jù)庫(kù)為hudu1,,hudu2,hudu3里面的數(shù)據(jù)來(lái)統(tǒng)計(jì)?
正 文:

在同一臺(tái)數(shù)據(jù)庫(kù)服務(wù)器上:  
select   *   from   hudu1.dbo.表名  
select   *   from   hudu2.dbo.表名  
select   *   from   hudu3.dbo.表名  
   
在不同數(shù)據(jù)庫(kù)服務(wù)器上:  
select   *   from   openrowset('SQLOLEDB','sql服務(wù)器1';'用戶名';'密碼',hudu1.dbo.表名)  
select   *   from   openrowset('SQLOLEDB','sql服務(wù)器2';'用戶名';'密碼',hudu2.dbo.表名)  
select   *   from   openrowset('SQLOLEDB','sql服務(wù)器3';'用戶名';'密碼',hudu3.dbo.表名)

下面的方法可以參考:
方法一:用OPENDATASOURCE   方法去操作異地?cái)?shù)據(jù)庫(kù)  
   
declare   @i   int  
set   @i=1  
select   *   from   OPENDATASOURCE('SQLOLEDB','Data   Source=IP地址;User   ID=sa;Password=密碼').異地?cái)?shù)據(jù)庫(kù)名.dbo.表名   A   inner   join   本地?cái)?shù)據(jù)庫(kù)名..表名   B  
on   A.關(guān)聯(lián)字段=B.關(guān)聯(lián)字段   and   A.字段名稱=@i  
   
   
     
--方法二:如果經(jīng)常訪問或數(shù)據(jù)量大,建議用鏈接服務(wù)器  
     
--創(chuàng)建鏈接服務(wù)器  
exec   sp_addlinkedserver     'srv_lnk','','SQLOLEDB','遠(yuǎn)程服務(wù)器名或ip地址'  
exec   sp_addlinkedsrvlogin   'srv_lnk','false',null,'用戶名','密碼'  
go  
     
--查詢示例  
select   *   from   srv_lnk.數(shù)據(jù)庫(kù)名.dbo.表名  
     
--導(dǎo)入示例  
select   *   into   表   from   srv_lnk.數(shù)據(jù)庫(kù)名.dbo.表名  
     
go  
--以后不再使用時(shí)刪除鏈接服務(wù)器  
exec   sp_dropserver   'srv_lnk','droplogins'  
   
     
--如果只是臨時(shí)訪問,可以直接用openrowset  
--查詢示例  
select   *   from   openrowset('SQLOLEDB'  
    ,'sql服務(wù)器名';'用戶名';'密碼'  
    ,數(shù)據(jù)庫(kù)名.dbo.表名)  
     
   
--導(dǎo)入示例  
select   *   into   表   from   openrowset('SQLOLEDB'  
    ,'sql服務(wù)器名';'用戶名';'密碼'  
    ,數(shù)據(jù)庫(kù)名.dbo.表名) 

   錯(cuò)誤7405:異類查詢要求為連接設(shè)置ANSI-NULL和ANSI-WARNNINGS選項(xiàng),,這將確保一致的查詢語(yǔ)意,,請(qǐng)啟用這些選項(xiàng),然后重新發(fā)出查詢
解決方法:
   SET   ANSI_NULLS   ON  
      SET   ANSI_WARNINGS   ON  
       GO  
          Create   PROCEDURE   ....

SQL SERVER存儲(chǔ)過程中通過鏈接服務(wù)器訪問遠(yuǎn)程服務(wù)器SQL實(shí)戰(zhàn)

SQLSERVER的開發(fā)中,,經(jīng)常會(huì)碰到跨物理服務(wù)器跨數(shù)據(jù)庫(kù)的訪問和操作,。
下面來(lái)分析下在存儲(chǔ)過程中創(chuàng)建遠(yuǎn)程訪問的完整例子.
需求: 在A服務(wù)器上有Card數(shù)據(jù)庫(kù),Card數(shù)據(jù)庫(kù)有存儲(chǔ)過程proc_Card;   
在B服務(wù)器上有AccountDB數(shù)據(jù)庫(kù),AccountDB下有Up_account存儲(chǔ)過程。
現(xiàn)在需要在執(zhí)行proc_Card最后,,調(diào)用一次Up_account存儲(chǔ)過程,,以實(shí)現(xiàn)不同服,不同數(shù)據(jù)庫(kù)的數(shù)據(jù)同步.
分析: 1. 存儲(chǔ)過程中調(diào)用存儲(chǔ)過程不是問題,
                Execute '存儲(chǔ)過程名字'
                存儲(chǔ)過程參數(shù)1=參數(shù)1的值,                
                參數(shù)2=參數(shù)2的值
                 ......
        2. 如何在A服上創(chuàng)建對(duì)B服務(wù)器 SQLSERVER的訪問呢?
                首先不得不提的是SQLSERVER鏈接服務(wù)器,在sql 2K中 企業(yè)管理器===>安全性===>鏈接服務(wù)器.
                SQLSERVER2005 or 2008中 Maragement studio 服務(wù)器對(duì)象==>鏈接服務(wù)器,。
                這個(gè)鏈接服務(wù)器對(duì)象是如何來(lái)的?
                        默認(rèn)情況下會(huì)只有本機(jī)一個(gè),,鏈接服務(wù)器名就是本機(jī)機(jī)器名,通過系統(tǒng)存儲(chǔ)過程Execute     sp_helpserver 可以查看,顯示為name字段

   如何新增鏈接服務(wù)器 ?
   A. 通過向?qū)В?br>     1. 右鍵鏈接服務(wù)器--->新增鏈接服務(wù)器
          2. 輸入鏈接服務(wù)器名[ 需要訪問的服務(wù)器的機(jī)器名或是IP,,如果別名無(wú)法解析到,,則使用IP ] ,指定服務(wù)器類型為SQL SERVER,
    3. 在安全性中選擇'使用此安全上下文建立連接' 指定需要訪問的服務(wù)器的SQL 登錄賬號(hào)和密碼
    4,。點(diǎn)確定,刷新鏈接服務(wù)器,,則可視配置的鏈接服務(wù)器信息
         B. 通過系統(tǒng)存儲(chǔ)過程,
    建立鏈接sql server服務(wù)器,通常有兩種情況:
    1. 第一種情況,,產(chǎn)品選”sql server”
     EXEC sp_addlinkedserver
     @server='linkServerName',
     @srvproduct = N'SQL Server'
     這種情況,,@server (linkServerName)就是要鏈接的sqlserver服務(wù)器名或者ip地址,。
    2.第二種情況,訪問接口選“Microsoft OLE DB Provider Sql Server”或“Sql Native Client”
     EXEC sp_addlinkedserver  
     @server=' linkServerName ',
     @srvproduct='',
     @provider='SQLNCLI',
     @datasrc='sqlServerName'
     這種情況,,@datasrc(sqlServerName)就是要鏈接的實(shí)際sqlserver服務(wù)器名或者ip地址,。
    3.Sql server數(shù)據(jù)庫(kù)引擎是通過上面設(shè)置的服務(wù)器名或者ip地址訪問鏈接服務(wù)器,DTC服務(wù)也是通過服務(wù)器名或者ip地址訪問鏈接服務(wù)器,,所以要保證數(shù)據(jù)庫(kù)引擎和DTC都能通過服務(wù)器名或者ip地址訪問到鏈接服務(wù)器,。
   建立了鏈接,創(chuàng)建了數(shù)據(jù)庫(kù)的登錄訪問:
    EXEC sp_addlinkedsrvlogin
    '上面創(chuàng)建的鏈接服務(wù)器的別名或是IP', --被訪問的服務(wù)器別名
    'false',
    NULL,
    '賬號(hào)', --賬號(hào)
    '登錄密碼' --密碼

   接下來(lái)就可以通過鏈接服務(wù)器來(lái)訪問服務(wù)器B的AccountDB庫(kù)下up_account存儲(chǔ)過程了:
    Execute [鏈接服務(wù)器別名].庫(kù)名.dbo.存儲(chǔ)過程

   工作似乎已經(jīng)結(jié)束了,但此時(shí)發(fā)現(xiàn),執(zhí)行存A服存儲(chǔ)過程時(shí)會(huì)報(bào) '未將[所用到的別名] 服務(wù)器配置為可用的RPC' ,如何解決?
          很簡(jiǎn)單,查看鏈接服務(wù)器的選項(xiàng),將RPC RPC_Out 值由False 改為 TRUE 再調(diào)試,,成功!
    也有情況在這里無(wú)法更改,解決方案是:
     exec sp_configure 'show advanced options', 1; --默認(rèn)是0   
     GO  
     RECONFIGURE WITH OVERRIDE;
     GO

存儲(chǔ)過程調(diào)用不同數(shù)據(jù)庫(kù)的數(shù)據(jù)_SQL SERVER存儲(chǔ)過程中通過鏈接服務(wù)器訪問遠(yuǎn)程服務(wù)器SQL實(shí)戰(zhàn)_SQLSERVER跨平臺(tái)數(shù)據(jù)訪問


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多