SQL/MS-SQL & SQL Server Management Studio

[ms sql] print() 함수/ print()함수 결과로 아무것도 출력이 안됨 / (동적쿼리 사용시 유용)

삐뚤어진 개발자 2019. 12. 9.

mssql 에서 동적쿼리를 작성 할 때, print 함수가 유용하게 쓰인다.

 

PRINT(@SQL_QUERY)

DECLARE @TEST_PARAM VARCHAR(50) = 'TEST'
DECLARE @SQL_QUERY VARCHAR(MAX) =' SELECT * FROM TB_TEST WHERE COLUMN ='''+@TEST_PARAM+''''

EXEC(@SQL_QUERY)
-- PRINT 함수
PRINT(@SQL_QUERY)

보통 변수 @SQL_QUERY 에 쿼리를 작성한후, EXEC 함수로 실행하게 되는데,

문제는 이 쿼리가 잘실행되었는지 확인할 수 가 없다.

EXEC(@SQL_QUERY)

 

그래서 PRINT() 함수를 사용하여 실행하게 되면 메세지에 내가 작성했던 쿼리가 출력된다.

PRINT(@SQL_QUERY)

 

TIP. 하지만 메세지가 나오지 않을 경우가 있다. 에러가 난게 아니라 @SQL_QUERY를 mssql 에서 동적쿼리를 작성 할 때, print 함수가 유용하게 쓰인다.

 

 

 

PRINT(@SQL_QUERY)

 

DECLARE @TEST_PARAM VARCHAR(50) = 'TEST'

DECLARE @SQL_QUERY VARCHAR(MAX) =' SELECT * FROM TB_TEST WHERE COLUMN ='''+@TEST_PARAM+''''

 

EXEC(@SQL_QUERY)

-- PRINT 함수

PRINT(@SQL_QUERY)

보통 변수 @SQL_QUERY 에 쿼리를 작성한후, EXEC 함수로 실행하게 되는데,

 

문제는 이 쿼리가 잘실행되었는지 확인할 수 가 없다.

 

EXEC(@SQL_QUERY)

 

 

 

그래서 PRINT() 함수를 사용하여 실행하게 되면 메세지에 내가 작성했던 쿼리가 출력된다.

 

PRINT(@SQL_QUERY)

 

 

 

TIP. 하지만 메세지가 나오지 않을 경우가 있다. 에러가 난게 아니라 쿼리를 작성할때 여러 변수들을 이거 붙여서 @SQL_QUERY를 만들것이다.

여러 변수들중 NULL인 값이 있다면 @SQL_QUERY변수가 통째로 NULL이 되어 아무것도 출력되지 않는것이다.

댓글