方法一:
1.select top 1000* from opendatasource('sqloledb','data source=資料庫伺服器的ip位址;user id=賬號; password=密碼').資料庫名稱.dbo.資料表
例子:select top 1000* from opendatasource('sqloledb','data source=59.188.1.140;user id=sa; password=led123456').pgenius.dbo.news_main
執行如果報錯,
原因:在從遠端伺服器複製資料到本地時出現「sql server 阻止了對元件 'ad hoc distributed queries' 的 statement'openrowset/opendatasource' 的訪問,因為此元件已作為此伺服器安全配置的一部分而被關閉。系統管理員可以通過使用 sp_configure 啟用 'ad hoc distributed queries'。有關啟用 'ad hoc distributed queries' 的詳細資訊 」錯誤
執行以下**:
啟用ad hoc distributed queries:
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'ad hoc distributed queries',1
reconfigure
關閉ad hoc distributed queries:
exec sp_configure 'ad hoc distributed queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure
方法二:
2.--1.0 建立遠端連線的資料庫鏈結,即別名
exec sp_addlinkedserver 'servera', '', 'sqloledb', '伺服器所在ip位址'
exec sp_addlinkedsrvlogin 'servera', 'false', null, 'sa', 'sa賬戶的密碼'
如:exec sp_addlinkedserver 'servera', '', 'sqloledb', '127.1.0.1'
exec sp_addlinkedsrvlogin 'servera', 'false', null, 'sa', '123'
--2.0 執行查詢語句
2.0.1:直接查詢
select top 1* from [servera].[資料庫名稱].[dbo].[資料表名稱]
2.0.2:連表查詢
select top 1* from [servera].[yao].[dbo].[news_main] as m inner join [servera].[yao].[dbo].[news_content] as c on m.id=c.id
2.0.3:採集資料
--如果表a和表b的結構相同,則
insert into tableb select * from servera.databasea.dbo.tablea
--如果表a和表b的結構部分相同,則
insert into tableb (需要複製的列名,以逗號隔開) select 需要複製的列表,以逗號隔開 from servera.databasea.dbo.tablea
不同伺服器資料庫之間的資料操作
首先執行 exec sp addlinkedserver itsv sqloledb 10.0.0.21 exec sp addlinkedsrvlogin itsv false null,sa 然後實現sql語句 delete from lr insert lr select from itsv....
不同伺服器資料庫之間的資料操作
首先執行 exec sp addlinkedserver itsv sqloledb 10.0.0.21 exec sp addlinkedsrvlogin itsv false null,sa 然後實現sql語句 delete from lr insert lr select from itsv....
不同伺服器資料庫之間的資料操作
不同伺服器資料庫之間的資料操作 建立鏈結伺服器 exec sp addlinkedserver itsv sqloledb 遠端伺服器名或ip位址 exec sp addlinkedsrvlogin itsv false null,使用者名稱 密碼 查詢示例 select from itsv.資料庫...