如何查詢sql跨伺服器
⑴ mysql跨伺服器查詢
當然是不能直接跨伺服器查詢了。但是,如果你有足夠的許可權,可以變通一下。就是MYSQL的同步復制
使s2作為s1的從伺服器,同步資料庫d1到s2,這樣s1做了更改後s2上也會有d1且d1也會隨之改變數據,再在s2上執行同台伺服器上的跨庫查詢就方便多了
關於如何設置「MYSQL的復制」,請到網站下載MYSQL參考手冊,里邊有詳細的說明
如果不明白,可以HI我
⑵ 如何跨實例查詢sql
Exec sp_droplinkedsrvlogin DBVIP,Null
Exec sp_dropserver DBVIP
EXEC sp_addlinkedserver
@server='DBVIP',--被訪問的伺服器別名
@srvproct='',
@provider='SQLOLEDB',
@datasrc="/Server2" --要訪問的伺服器
EXEC sp_addlinkedsrvlogin
'DBVIP', --被訪問的伺服器別名
'false',
NULL,
'sa', --帳號
'thankyoubobby' --密碼
Select * from DBVIP.pubs.dbo.orders
--查看當前鏈接情況:
select * from sys.servers;
--使用 sp_helpserver 來顯示可用的伺服器
Exec sp_helpserver
--刪除已經存在的某個鏈接
Exec sp_droplinkedsrvlogin 伺服器別名,Null
Exec sp_dropserver 伺服器別名
--使用sp_addlinkedserver來增加鏈接
EXEC sp_addlinkedserver
@server='192.168.2.66',--被訪問的伺服器別名(習慣上直接使用目標伺服器IP,或取個別名如:JOY)
@srvproct='',
@provider='SQLOLEDB',
@datasrc='192.168.2.66' --要訪問的伺服器
--使用sp_addlinkedsrvlogin 來增加用戶登錄鏈接
EXEC sp_addlinkedsrvlogin
'192.168.2.66', --被訪問的伺服器別名(如果上面sp_addlinkedserver中使用別名JOY,則這里也是JOY)
'false',
NULL,
'sa', --帳號
'test123' --密碼
使用舉例(訪問目標伺服器上的資料庫Music,查看其中表test的內容):
如果建立鏈接時的別名是目標伺服器IP,即192.168.2.66
則:
select * from [192.168.2.66].[Music].dbo.test
如果建立鏈接時的別名是JOY,
則:
select * from [JOY].[Music].dbo.test
可能會遇到的問題:
exec sp_dropserver 'JOY'執行失敗,
報錯信息:仍有對伺服器 'JOY' 的遠程登錄或鏈接登錄。
解決方法:
exec sp_droplinkedsrvlogin 'JOY',null
exec sp_dropserver 'JOY'
⑶ sql資料庫中跨不同資料庫伺服器的查詢
--SQLServer跨伺服器查詢
--創建鏈接伺服器(連接的保密要自己想辦法解決啦!)
execsp_addlinkedserver'LKSV','','SQLOLEDB','遠程伺服器名或ip地址'
execsp_addlinkedsrvlogin'LKSV','false',null,'用戶名','密碼'
--查詢實例
select*fromLKSV.資料庫名.dbo.表名
⑷ 如何在mysql中進行跨伺服器或者跨埠查詢,就像sql server中的鏈接伺服器一樣的
創建鏈接伺服器,
之後就可以直接使用,例如:
select from 鏈接伺服器名.odb.[database].[table]
⑸ 跨伺服器查詢導入數據的sql語句
insert
into
MICS_WorkPlan_RestDays
select
*
from
OPENROWSET('SQLOLEDB',
'SERVER=192.168.2.97;uid=用戶名;pwd=密碼;Database=資料庫','select
*
from
v_restdays(sql語句,可執行存儲過程)')
as
a
此語句可用來將另一伺服器中的數據插入到本資料庫中的某一表內
⑹ 如何在SQL SERVER跨伺服器查詢資料庫
--創建鏈接伺服器
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 b
set b.列A=a.列A
from openrowset( 'SQLOLEDB ', 'sql伺服器名 '; '用戶名 '; '密碼 ',資料庫名.dbo.表名)as a inner join 本地表 b
on 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 b
set b.列B=a.列B
FROM openquery(ITSV, 'SELECT * FROM 資料庫.dbo.表名 ') as a
inner join 本地表 b on a.列A=b.列A
--3、opendatasource/openrowset
SELECT *
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 本地表
⑺ sql跨伺服器查詢,並將值賦給變數
sql跨伺服器查詢
select*from
OPENDATASOURCE('SQLOLEDB','DataSource=伺服器;DBN=源資料庫名;UID=用戶名;PWD=密碼').源資料庫名.dbo.[表名]
若是賦值變數,你則可聲明變數,並賦值
declare@aasvarchar(50)
selecttop1@a=欄位名from
OPENDATASOURCE('SQLOLEDB','DataSource=伺服器;DBN=源資料庫名;UID=用戶名;PWD=密碼').源資料庫名.dbo.[表名]
select@aasa
但上述查詢需要開啟外圍資料庫查詢
先選中 master 資料庫,新建一個查詢,執行以下的sql
開戶外圍:
execsp_configure'showadvancedoptions',1
reconfigure
execsp_configure'AdHocDistributedQueries',1
reconfigure
關閉外圍:
execsp_configure'showadvancedoptions',0
reconfigure
execsp_configure'AdHocDistributedQueries',0
reconfigure
⑻ SQL 跨伺服器查詢問題!!!
錯誤說明無法連接到192.168.0.245這台伺服器,你可以:
檢查一下本機及伺服器的防火牆有沒有特殊的設置,導致沖突;
另外檢查一下本機的SQL Server客戶端協議是否啟用了TCP/IP協議;
你還可以用查詢分析器直接連接到192.168.0.245的資料庫,看看能否成功,能成功的話說明SQLOLEDB連接驅動有問題,可以修復一下。
我能想到的就這么多了,希望對你有幫助
⑼ sql資料庫跨伺服器查詢,不同表,不同數據量的並列顯示
用事物實現,具體比較麻煩。你可以用臨時表來實現,首先從A資料庫中查到數據放到某一個臨時表1中,再從B資料庫中查到數據放到某一個臨時表2中,然後再進行第二次查詢。中間注意事物的回滾,否則如果某個資料庫連接錯誤就會導致數據不對。
如果你不明白什麼是資料庫的事務,你就去查一下,不是很難得。
⑽ SQL資料庫跨庫查詢語句怎麼寫
1、同一個伺服器跨資料庫查詢
select a.列1,a.列2,b.列1,b.列1,
from 數據1.dob.查詢表1 a inner Join 數據2.dbo.查詢表2 b
on b.關聯欄位=a.關聯欄位
where 條件
2、不同服務跨資料庫查詢:
首先創建鏈接伺服器,後查詢方法與1類似,只是查詢時需要把數據鏈接名稱添加到查詢中。
具體操作參看:http://blog.csdn.net/htl258/article/details/5695391