標籤: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跨庫查詢--分散式查詢[轉載]