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'
▶ 실행 결과
![데이터베이스명, 테이블을 변수로 받아 결괏값 조회하기](https://bluesharehub.com/wp-content/uploads/2022/07/img_1-20.png)
![데이터베이스명, 테이블을 변수로 받아 결괏값 조회하기](https://bluesharehub.com/wp-content/uploads/2022/07/img_1-20.png)
이 글이 도움이 되셨다면 공유를 부탁 드립니다. 다음 글에서 뵙겠습니다!