MSSQL 동적 쿼리 사용법, 저장 프로시저 및 함수 활용

MSSQL 동적 쿼리 사용법, 저장 프로시저 및 함수 활용

MS SQL에서 저장 프로시저 또는 함수를 만들 때 테이블을 변수로 받아 처리하거나 조건에 따라서 WHERE 절을 다르게 처리해야 될 때가 있습니다. 그럴 경우에는 동적 쿼리를 사용하여 해결하시면 됩니다. 그럼 동적 쿼리를 사용하는 방법에 대해서 알아보죠.

◎ 포스트 기준 – Microsoft SQL Server 2019, SSMS 18.11

동적 쿼리 사용 예제

데이터베이스명, 테이블을 변수로 받아 결괏값 조회하기

▶ 코드

-- 예시) 저장 프로시저로 받는 값
declare @i_dbnm		nvarchar(50) = 'blueshare',		 -- 데이터베이스명
        @i_table	nvarchar(50) = 'bs_demo_9',		 -- 테이블
        @i_p_id		nvarchar(50) = '1010'			 -- WHERE 조건
    
-- 변수 선언
declare @sql		nvarchar(max)
    
    
-- 동적 쿼리문 : 데이터베이스명, 테이블을 변수로 받아 처리
set @sql = ''
set @sql = ' select * from [' + @i_dbnm + '].[dbo].[' + @i_table + '] '
    
if @i_p_id <> ''  -- 받는 변수값이 있는 경우
   set @sql = @sql + ' where p_id = ''' + @i_p_id + ''' '
    
exec (@sql)   -- 동적 쿼리문 실행
    
    
-- 동적 쿼리문 실행 결과 쿼리
select * from [blueshare].[dbo].[bs_demo_9]
 where p_id = '1010'


▶ 실행 결과

데이터베이스명, 테이블을 변수로 받아 결괏값 조회하기


이 글이 도움이 되셨다면 공유를 부탁 드립니다. 다음 글에서 뵙겠습니다!

위로 스크롤