SqlServer如何跨例項訪問資料庫

2022-03-01 04:23:09 字數 4624 閱讀 5150

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 安全性 登入名...