DB(DataBase)/MSSQL(SQL-Server)'

MS-SQL to MS-SQL 디비링크(DB-Link) 방법

isony 2024. 5. 27. 21:19
반응형

*. MS-SQL to MS-SQL 디비링크(DB-Link) 방법

1. DB-Link 생성

   EXEC sp_addlinkedserver
        @server = 'MSSQL_DBLINK',    -- 연결서버명칭
        @srvproduct = '',
        @provider = 'SQLOLEDB',
        @datasrc = '192.168.100.10', -- 연결서버 IP
        @catalog = 'TEST'            -- DB명칭

2. DB-Link 계정생성

   EXEC sp_addlinkedsrvlogin
        @rmtsrvname = 'MSSQL_DBLINK', -- 연결서버명칭
        @useself = 'false',
        @rmtuser = 'sa',              -- 계정명
        @rmtpassword = '*****'        -- 계정암호
        

3. 연결서버 확인방법

   1) MSSQL 연결 서버확인
      select * from master.dbo.sysservers 
   2) MSSQL 연결 계정확인
      select * from master.sys.linked_logins 

4. DB-LINK 자료 조회

   select * from 연결서버명칭.DB명칭.소유자명.테이블;
   
   예 select )
     select * from [MSSQL_DBLINK].[TEST].[dbo].[SYS_USER]


   예 insert )
     insert into [MSSQL_DBLINK].[TEST].[dbo].[SYS_USER] ('칼럼') values ('값')

   예 udpate )
     update [MSSQL_DBLINK].[TEST].[dbo].[SYS_USER]
        set '칼럼' = '값'
      where 조회 조건

   예 delete )
     delete
       from [MSSQL_DBLINK].[TEST].[dbo].[SYS_USER]
      where 조회 조건


5. DB-LINK 서버/계정 삭제

  EXEC sp_droplinkedsrvlogin
       @rmtsrvname = 'MSSQL_DBLINK', -- 연결서버명칭
       @locallogin = NULL

  EXEC sp_dropserver
       @server = 'MSSQL_DBLINK'      -- 연결서버명칭





<원격지 자료 읽어오기 샘플>

use main_svr;

declare @svr_link varchar(50);
declare @svr_table varchar(200);

set @svr_link = '[REMOTE_PC]';
set @svr_table = 'select * from ' + @svr_link + '.[TESTDB].[dbo].[COMMON_CODE]';

exec (@svr_table);

반응형