1樓:蘑菇飯資訊
在我們日常使用sql server資料庫時,經常遇到需要在例項instance01中跨例項訪問instance02中的資料。例如在做資料遷移時,如下語句:
insert into instance01.db01.dbo.table01
select * from instance02.db01.dbo.table01
普通情況下,這樣做是不允許的,因為sql server預設不可以跨例項訪問資料。解決方案是使用儲存過程sp_addlinkedserver進行例項註冊。
sp_addlinkedserver在msdn中的定義為:
sp_addlinkedserver [ @server= ] 'server' [ , [ @srvproduct= ] 'product_name' ]
[ , [ @provider= ] 'provider_name' ]
[ , [ @location= ] 'location' ]
[ , [ @provstr= ] 'provider_string' ]
[ , [ @catalog= ] 'catalog' ]
例如:在instance01例項中,執行如下sql語句
exec sp_addlinkedserver 『instance02』 //只寫第乙個引數即可,預設情況下,註冊的是sql server資料庫,其他引數用法詳見msdn。
如果你的兩個例項在同乙個域中,且instance01與instance02有共同的域登陸帳號,那麼經過上面的註冊後,前面的insert語句就可以執行了。否則,還需要對註冊的遠端例項進行登陸帳號註冊,在instance01例項中,執行如下sql語句
exec sp_addlinkedsrvlogin 'instancename','true' //使用整合認證訪問遠端例項
或者 exec sp_addlinkedsrvlogin 'instancename','false','tjvictor,'sa','password1' //使用windows認證訪問遠端例項,當使用者以tjvictor使用者登陸instance01例項訪問instance02時,預設把tjvictor對映成sa,且密碼為password1
經過 sp_addlinkedserver例項註冊和sp_addlinkedsrvlogin登陸帳戶註冊後,就可以在instance01中直接訪問instance02中的資料庫資料了。
如果還無法訪問,請檢查本機dns是否可以解析遠端資料庫的例項名。如果無法解析,可以在exec sp_addlinkedserver 『instance02』中把instance02換為ip,或者在hosts檔案中,自己建立相應dns對映。
2樓:匿名使用者
用鏈結伺服器跨例項訪問
怎麼跨區域網訪問sql server資料庫
3樓:
登入到路由器上,把當前你的伺服器的ip和埠,設定了成 乙個統一的ip就可以了。
比如,你的伺服器是在乙個網路內的 ,ip是192.168.1.16,埠是1433,那麼你要在另乙個網路訪問這個伺服器,
那麼就在 伺服器所在的 網路,登陸到路由器上,設定一下 就好了!
4樓:匿名使用者
直接用ip訪問,當然前提區域網間是通的
如何在sql server跨伺服器查詢資料庫
5樓:匿名使用者
--建立鏈結伺服器
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 本地表
6樓:du瓶邪
用opendatasource
下面是個跨sqlserver查詢的示例
select tablea.*,tableb.* from opendatasource(
'sqloledb',
'data source=servera;user id=userid;password=password'
).databaseaname.dbo.tablea
left join
opendatasource(
'sqloledb',
'data source=serverb;user id=userid;password=password'
).databasebname.dbo.tableb on tablea.key=tableb.key
下面是個查詢的示例,它通過用於 jet 的 ole db 提供程式查詢 excel 電子**。
select *
from opendatasource( 'microsoft.jet.oledb.4.0',
'data source="c:\finance\account.xls";user id=admin;password=;extended properties=excel 5.
0')...xactions
7樓:匿名使用者
select *from opendatasource('sqloledb','data source=伺服器名稱;user id=sa;password=sa) .資料庫名稱.dbo.
表名查詢
同一網段下不同伺服器的sql server資料庫互相訪問,怎麼設定 50
8樓:匿名使用者
配置鏈結伺服器
在伺服器物件下面有,
按照提示,一步一步配置就好了,,,
例如跨庫查詢
select * from
[伺服器位址].庫名.dbo.表名
這樣的格式,更新插入同理
9樓:匿名使用者
直接 註冊到企業管理器就可以訪問了,
不知道你的意思是啥
什麼是SQL SERVER例項,sQL server 什麼是例項
就是乙個在資料庫中存在的,現實的資料庫例子!資料庫例項就是後台程序和資料庫檔案的集合。乙個sql server伺服器就是乙個例項,2000支援在同乙個nt 2000 server作業系統裝多個伺服器,換言之,就是多個例項。多個 sql server 例項 microsoft sql server 2...
建立新的sqlserver例項是什麼意思
可以同時安裝多個同版本的例項,只需要例項名不同即可。和安裝2005和2008方法一致,記住使用命名例項,並且建議使用一些有標識性質的名字。比如sql2005second這樣代表第二個2005的例項。新使用安裝sql server的選項,在安裝過程中使用命名例項即可。sqlserver在預設安裝時有乙...
如何連線sql server資料庫
以sqlserver2008r2為例。1 開啟sql2008,使用windows身份登入 2 登入後,右鍵選擇 屬性 左側選擇 安全性 選中右側的 sql server 和 windows 身份驗證模式 以啟用混合登入模式 3 選擇 連線 勾選 允許遠端連線此伺服器 然後點 確定 4 安全性 登入名...