#프로시저# 다른 DB의 데이터 검색해서 받아와보자공!

               

다른 데이터베이스의 테이블에서 데이터를 검색해야하는 경우 프로시저와 exec를 이용해 받아올 수 있습니다.


1. DB명이 고정되어있는 경우


1
2
3
4
5
6
7
8
9
10
-- 데이터를 저장할 임시테이블 생성
create table #temp
    (
        필드명     자료형,
                필드명     자료형
                ...
    )
-- Exec와 프로시저를 이용해 다른 DB에 있는 테이블 검색한다.
-- 프로시저는 검색할 테이블 DB에 미리 생성 되어 있어야한다.
Insert #temp  Exec  [DB명].[dbo].[프로시저명]     [전달할 인자]


접기

예제. 

1
2
3
4
5
6
7
8
9
-- 데이터를 저장할 임시테이블 생성
create table #temp
    (
        store_employee_serial varchar(10),
        store_employee_name varchar(10)
    )
-- Exec와 프로시저를 이용해 다른 DB에 있는 테이블 검색한다.
-- 프로시저는 검색할 테이블 DB에 미리 생성 되어 있어야한다.
Insert #temp Exec [store].dbo.proc_get_auth_confirm_employee @store_employee_serial


접기




2. DB명이 동적인 경우

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
-- 데이터를 저장할 임시테이블 생성
create table #temp
    (
        필드명     자료형,
                필드명     자료형
                ...
    )
 
-- 실행 명령어를 @sql 변수에 저장한다
-- Exec(변수)와 프로시저를 이용해 다른 DB에 있는 테이블 검색한다.
-- 프로시저는 검색할 테이블 DB에 미리 생성 되어 있어야한다.
 
Declare @sql varchar(1000)
    Set @sql = '[' + DB명+ '].dbo.프로시저명' + 전달할 인자
    print @sql
 
 
Insert #temp  Exec (@sql)



접기

예제. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
-- 데이터를 저장할 임시테이블 생성
create table #temp
    (
        store_employee_serial varchar(10),
        store_employee_name varchar(10)
    )
 
-- 실행 명령어를 @sql 변수에 저장한다
-- Exec(변수)와 프로시저를 이용해 다른 DB에 있는 테이블 검색한다.
-- 프로시저는 검색할 테이블 DB에 미리 생성 되어 있어야한다.
 
Declare @sql varchar(1000)
    Set @sql = '[' + @store_serial + '].dbo.proc_get_auth_confirm_employee ' + @store_employee_serial
    print @sql
 
Insert #store_employee_info Exec (@sql)


접기