SQL 질문과 답변 게시판
Microsoft SQL Server와 관련된 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
글 수 5,172
안녕하세요..
프로시져에서 동적쿼리를 실행시켜 에러난 내용을 .log 파일로 기록하고자 문의를 드립니다.
여기에서의 에러 내용을 .log 파일로 나타낼려고 합니다.
기존에 생성된 파일이 있다면 파일을 열어서 기존 내용 하단에 넣어줄려고 하고,
기존에 생상된 파일이 없다면 신규로 생성하여 에러 메세지의 내용 로그로 남길려고 하는데..
DECLARE @Sql varchar(max), @path varchar(500), @logDate varchar(10)
DECLARE @aaa char(1), @eLine varchar(100), @eMess varchar(1000)
SET @Sql = 'select * from '
if @aaa = '1'
SET @Sql = @Sql + ' #test '
else
SET @Sql = @Sql + ' #test3 '
BEGIN TRY
EXEC (@Sql)
END TRY
BEGIN CATCH
select @logDate = convert(varchar(10), getdate(), 120)
SET @path = 'C:\TEMP\LOGFILE\'
SET @path = @path + @logDate+'.log'
SELECT @eLine = ERROR_LINE() , @eMess = ERROR_MESSAGE()
????
END CATCH
??? 처리 부분을 어떻게 해야 할지..
아직 프로시져에서 파일을 생성하는 부분을 몰라 여쭈어 봅니다..
답변 부탁 드립니다...


EXEC MASTER..XP_CMDSHELL 'echo ' + 'Error_line: ' + @eLine + 'Erroe_message:' + @eMess + ' >> Error.log'
이렇게 하시면 되지 않을까요 .....
도스명령어중 도스창에서
echo ㅎㅎㅎㅎ >> log.txt 하시면 log,txt를 만들어 줍니다 . >> 이 표시는 화일 끝에 추가 하라는 의미 > 는 새롭게 만들어라는 의미 입니다.
이걸 XP_CMDSHELL \을 이용해서 만들어 주면 될듯 합니다. 보안상 비추가 많네요.. 하나의 문자열로 변경해야 할듯.