본문 바로가기

it/db

MSSQL에서 동적SQL을 구현(OUTPUT파라미터 없을때)

exec 라는 명령어를 사용하면 됩니다.

아래는 간단한 예제 입니다.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-



CREATE    procedure p_GetFieldValue
(
       @table   NVARCHAR(100),
       @value1 NVARCHAR(200),
       @value2 NVARCHAR(200) = null,
       @value3 NVARCHAR(200) = null,
       @value4 NVARCHAR(200) = null
)
as
begin

       declare @fields varchar(500)        
       declare @sql varchar(500)

       set @fields = @value1 + N' as a'

       if ( @value2 is not null        )
       begin
               set @fields = @fields + N', ' + @value2 + N' as b'
       end

       if ( @value3 is not null        )
       begin
               set @fields = @fields + N', ' + @value3 + N' as c'
       end

       if ( @value4 is not null        )
       begin
               set @fields = @fields + N', ' + @value4 + N' as d'
       end

               
       set @sql =  N'SELECT ' + @fields + N' FROM ' + @table


       exec ( @sql )

end