SQLServer跨庫查詢--分散式查詢[轉載]

來源:互聯網
上載者:User

標籤:sql語句   電子   win   style   span   不同   語句   column   dts   

--用openrowset串連遠程SQL或插入資料 --如果只是臨時訪問,可以直接用openrowset--查詢樣本select * from openrowset(‘SQLOLEDB‘,‘sql伺服器名‘;‘使用者名稱‘;‘密碼‘,資料庫名.dbo.表名)--匯入樣本select * into 表 from openrowset(‘SQLOLEDB‘,‘sql伺服器名‘;‘使用者名稱‘;‘密碼‘,資料庫名.dbo.表名)--建立連結的伺服器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.表名--以後不再使用時刪除連結的伺服器exec sp_dropserver ‘srv_lnk‘,‘droplogins‘go--下面的樣本訪問來自某個表的資料,該表在 SQL Server 的另一個執行個體中。SELECT *FROM OPENDATASOURCE(‘SQLOLEDB‘,‘Data Source=ServerName;User ID=MyUID;Password=MyPass‘).Northwind.dbo.Categories--下面是個查詢的樣本,它通過用於 Jet 的 OLE DB 提供者查詢 Excel 試算表。SELECT *FROM OpenDataSource( ‘Microsoft.Jet.OLEDB.4.0‘,‘Data Source="c:Financeaccount.xls";User ID=Admin;Password=;Extended properties=Excel 5.0‘)...xactions
例如:SELECT *FROM OPENQUERY(Far_MDB, ‘SELECT * FROM MDB_Member‘) 這就是從我的連結的伺服器當中去查詢MDB_Member表的資料備忘:1、關於連結的伺服器的詳細情況請參閱聯機叢書中的sp_addlinkedserver、 sp_addlinkedsrvlogin、sp_addserver、sp_dropserver、sp_serveroption、sp_linkedservers等系統級預存程序。2、關於此連結的伺服器的建立及其使用在不同環境下(全部內網伺服器、一內網一公網伺服器、全公網伺服器)測試,均告通過。3、有時候在預存程序中訪問連結的伺服器的時候可能會碰到如下的提示,必須要對ANSI warning 和ANSI nulls進行設定,這時候按照如下的方法進行設定:設定本機資料庫的屬性-->串連-->選上ANSI warning 和 ANSI nulls如何用sql語句進行跨庫查詢在機器B上的資料庫database2中建立一個暫存資料表#tmp, 內容就是機器A上的資料庫database1裡面的Table1。 如何用sql陳述式完成?(不借用dts等)SQL code --建立連結的伺服器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 bset b.列A=a.列Afrom openrowset(‘SQLOLEDB‘,‘sql伺服器名‘;‘使用者名稱‘;‘密碼‘,資料庫名.dbo.表名)as a inner join 本地表 bon 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 bset b.列B=a.列BFROM openquery(ITSV, ‘SELECT * FROM 資料庫.dbo.表名‘) as a inner join 本地表 b on a.列A=b.列A--3、opendatasource/openrowsetSELECT   *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 本地表用   連結的伺服器 OPENROWSET OPENDATASOURCE 都可以連結的伺服器.database1.dbo.table1連結的伺服器.database1.dbo.table1SQL code select * into #from openrowset(‘sqloledb‘,‘ip‘;‘sa‘;‘‘,‘select * from pubs.dbo.jobs‘)如果只是偶爾使用   就用opendatasource/openrowset   固定的頻繁使用建linked   server

 

SQLServer跨庫查詢--分散式查詢[轉載]

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.