MSSQL Linked Server

Linked Server
분 산 쿼리를 사용하면 여러 SQL Server 인스턴스에 저장된 분산 데이터 및 관계형 및 비관계형 데이터 원본에 저장되어 OLE DB 공급자를 통해 액세스되는 유형이 다른 데이터 까지 데이터 원본에 대해 분산 쿼리, 업데이트, 명령, 트랜잭션 등을 수행할 수 있습니다


/* mssql

 Linked Server 만듬

*/


exec sp_addlinkedserver
 @server='linkDB_Server',           -- 연결할 서버 이름 생성(아무거나)
 @srvproduct = '',                      -- 연결된서버의 제품이름(공백처리)
 @provider = 'SQLOLEDB',         -- SQL 서버면 그대로
 @datasrc = '111.111.111.111',     -- 연결할 서버 아이피      
 @provstr='',                             -- 공급자문자열(공백-필요하다면적음)
 @catalog='Northwind'               -- 특정카탈로그(데이터베이스명)                                
go



-- linkDB_Server에 접속할수 있는 계정을 생성한다.
exec sp_addlinkedsrvlogin 'linkDB_Server', 'false', null, 'login_id', 'login_password' 
go


select * from linkDB_Server.Northwind.dbo.Orders -- 링크디비명.데이터베이스명.소유자.테이블명

select * from openquery(linkDB_Server, 'select * from Northwind.dbo.Orders')


/*

제대로 등록되어있는지 확인
use master
go

-- sp_addlinkedserver의 구성을 살펴보면 Linked Server의 정보가 sysserver 테이블에 있음을 알 수 있다.
exec sp_helptext sp_addlinkedserver


-- 등록이 되었나 확인해보자.
select * from sysservers


*/


-- 등록된 Linked Server의 정보를 지운다.
exec sp_droplinkedsrvlogin @rmtsrvname = 'linkDB_Server' , @locallogin = NULL

---------------------------------- 원격서버 삭제하기
exec sp_dropserver @server = 'linkDB_Server'



기타

/* Oracle

dblink

*/
EXEC sp_addlinkedserver 
  @server = 'INSIDER'
  , @srvproduct = 'oracle'
  , @provider = 'MSDAORA'
  , @datasrc = '211.169.***.***'
Go

EXEC sp_addlinkedsrvlogin 
  'INSIDER'
  , 'false'
  , NULL
  , 'scott'
  , 'tiger'
Go



/* File Linked */
-- Create File Linked Srv
exec sp_addlinkedserver FileSrv, 'Jet 4.0',
'Microsoft.Jet.OLEDB.4.0',
'c:\',
null,
'Text'

-- Login At File Linked Srv
exec sp_addlinkedsrvlogin FileSrv, false, sa, null

-- Drop File Linked Srv Drop
exec sp_droplinkedsrvlogin 'FileSrv', null
exec sp_dropserver FileSrv

-- Show TxtTable File Linked Srv
exec sp_tables_ex FileSrv



[참조] http://syynice.egloos.com/10624085


WRITTEN BY
테네시왈츠
항상 겸손하게 항상 새롭게 항상 진실하게

,