DB/MSSQL

[MS-SQL] 동적쿼리에서 OUTPUT Parameter 사용 예제

alien22c 2024. 1. 23. 15:07
728x90
728x90

DMV를 활용하여 특정 데이터를 조회 시 사용하게 된 쿼리로, 아래 예제를 통해 바로 실행 및 확인 가능하다.
 

<OUTPUT Parameter 사용 예제>

-- OUTPUT 파라미터 1개 지정 시

BEGIN

   DECLARE @sql NVARCHAR(1000)
   DECLARE @param NVARCHAR(500)
   DECLARE @result DATETIMEOFFSET(3)

   SET @sql = 'SELECT @Today = SYSDATETIMEOFFSET()'
   SET @param = '@Today DATETIMEOFFSET(3) OUTPUT'

   EXEC SP_EXECUTESQL @sql, @param, @Today=@result OUTPUT

   SELECT @result AS [Today]

END
-- OUTPUT 파라미터 여러개 지정 시

BEGIN

  DECLARE @sql2 NVARCHAR(1000)
  DECLARE @param2 NVARCHAR(500)
  DECLARE @result2_Today DATETIMEOFFSET(3)
  DECLARE @result2_Yesterday DATETIMEOFFSET(3)
  DECLARE @result2_Tomorrow DATETIMEOFFSET(3)

  SET @sql2 = 'SELECT @Today = SYSDATETIMEOFFSET()
                                      , @Yesterday = DATEADD(DAY, -1, SYSDATETIMEOFFSET())
                                      , @Tomorrow = DATEADD(DAY, 1, SYSDATETIMEOFFSET())'
  SET @param2 = '@Today DATETIMEOFFSET(3) OUTPUT
                             , @Yesterday DATETIMEOFFSET(3) OUTPUT
                             , @Tomorrow DATETIMEOFFSET(3) OUTPUT'

  EXEC SP_EXECUTESQL @sql2, @param2
                                           , @Today = @result2_Today OUTPUT
                                           , @Yesterday = @result2_Yesterday OUTPUT
                                           , @Tomorrow = @result2_Tomorrow OUTPUT

  SELECT @result2_Today AS [Today], @result2_Yesterday AS [Yesterday], @result2_Tomorrow AS [Tomorrow]

END

 

728x90
728x90