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 |