Dev/DBMS
MSSQL에서 동적SQL을 구현(OUTPUT파라미터 없을때)
newtype
2003. 7. 22. 16:03
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
아래는 간단한 예제 입니다.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
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
반응형