SQL Server 동적 쿼리 실행: EXEC와 sp_executesql 비교와 사용법

배경 T-SQL에서 동적 쿼리를 실행하는 방법은 크게 두 가지가 있음 EXEC(@sql)로 문자열 그대로 실행 sp_executesql로 파라미터화된 쿼리 실행 핵심 차이는 실행 계획 재사용성과 파라미터 처리 방식에 있음 sp_executesql 기본 @stmt는 NVARCHAR 계열 입력 요구, N 접두 사용 권장 긴 문장은 nvarchar(max) 사용 권장, nvarchar(4000) 사용 시 4000자 제한 발생 VARCHAR로도 암시적 변환은 되지만 유니코드 손실 및 길이 이슈 가능, N’’ 사용 권장 예시 DECLARE @sql nvarchar(max) = N'SELECT 1' EXEC sp_executesql @sql파라미터 바인딩 예시 ...

March 25, 2026