디비 작업을 하다보면, 다른 디비의 특정 데이터만 가져올 경우가 생긴다.
그때 유용한 기능이 디비간 연결이다.
연결 방법 - 첫번째
1. 'SQL Server Management Studio' 에서 연결할 서버로 접속한다.
2. 서버 개체 > 연결된 서버 > 오른쪽 마우스 > '새 연결된 서버' 메뉴를 선택한다.
3-1. 일반탭 : '연결된 서버' 에서 접속할 서버의 IP 또는 도메인을 적고 '서버유형' 에서
SQL Server를 선택한다.
3-2. 일반탭 : '연결된서버' 에서 별칭을 적어준다. 예를들어 'TestServer' 정도. 그리고
기타 데이터 원본을 선택 후 공급자를 'SQL Native Client', 데이터 원본을 서버의 IP 또는
도메인을 적어준다. 3-1 보다는 이 방법을 추천.
4. 보안탭 : '다음 보안 컨텍스트를 사용하여 연결' 을 선택한 후, 계정을 적어준다.
5. 서버 옵션 : 권한을 어느 정도까지 허용할지 설정해 준다.
연결 방법 - 두번째
1. 쿼리 분석기를 연다.
2. 'sp_addlinkedserver' 로 서버를 추가한다.
Exec sp_addlinkedserver
@server = 'TestServer', -- 추가할 링크드 서버이름
@srvproduct = '', -- 공백처리 (OLEDB 데이터 원본의 제품 이름)
@provider = 'SQLOLEDB', -- 공급자, MSSQL
@datasrc = '111.222.33.44', -- 디비 경로
@provstr='', -- 공백처리 (연결할 특정 인스턴스의 이름)
@catalog='' -- 공백처리, 특정 디비를 쓰고 싶으면 적어준다.
Go
3. 'sp_addlinkedsrvlogin' 로 추가된 링크드 서버에 접속한다.
-- Exec sp_addlinkedsrvlogin '링크드서버명', 'False', Null, '아이디', '비밀번호'
Exec sp_addlinkedsrvlogin 'TestServer', 'False', Null, 'test', 'test4321'
이렇게 하면 첫번째와 똑같은 설정을 할 수 있다. 좀 더 자세한 설명은 SQL 도움말을 참고.
사용 방법
불러오는 형식은 '디비서버명.디비명.테이블명' 이다.
예를 들면 이런 식이다.
- Select * From [111.222.33.44].Test.dbo.T_Test
- Select * From TestServer.Test.dbo.T_Test