2013-02-26 5 views
0

원격 서버에서 결과를 가져 오기 위해 배치 파일에 foll sql 쿼리를 작성했습니다.배치 파일에 sqlcmd를 사용하여 출력 파일에 타임 스탬프 넣기

SQLCMD -S "ServerName -U "uer" -P "Pass" -W -d"Interface" -Q"select LEFT(Zone_Prefix,5)+case when RIGHT(Zone_prefix,1)='N' then '_NORTH_WING' ELSE '_SOUTH_WING' END AS [Zone Name],cnt as [Zone Count] from (SELECT LEFT([Zone Name], 6) AS Zone_Prefix,SUM([Zone Count]) cnt FROM [Interface].[dbo].[VwZoneCount] WHERE [Zone Name] IN ('EB2GFNMZ','EB2GFSMZ','EB2GFNZ1','EB2GFSZ1','EB21FNZ1','EB21FSMZ','EB21FSZ1','EB22FNZ1','EB22FSZ1','EB22FSMZ','EB23FNMZ','EB23FNZ1','EB23FNZ2','EB23FNZ3','EB23FSMZ','EB23FSZ1','EB23FSZ2','EB24FNMZ','EB24FNZ1','EB24FSMZ','EB24FSZ1','EB25FNMZ','EB25FNZ1','EB25FSMZ','EB25FSZ1','EB26FNMZ','EB26FNZ1','EB26FSMZ','EB26FSZ1','EB27FNZ1','EB27FSMZ') GROUP BY LEFT([Zone Name], 6))tbl" -s" " -o"Output_hvac.xls" 

이 쿼리는 작업 스케줄러를 사용하여 4 시간마다 실행됩니다. 현재 모든 실행에 대해 결과가 덮어 쓰여지고 있습니다. 매 실행마다 새로운 결과가 추가되거나 다른 파일에 저장 될 때마다 타임 스탬프이 필요합니다. 내 관심사는 타임 스탬프를 지정하고 이전에 실행 한 모든 데이터를 유지하는 것입니다. 파일 이름에 타임 스탬프를 추가

덕분에

답변

1

확실히 가능하지만, 배치에 통증이있다.

첫 번째 추가 옵션은 훨씬 간단합니다. -o 옵션을 제거하고 추가 리디렉션을 대신 사용하십시오. 시간 소인을 추가하면 방향 재 지정된 ECHO 문만 있으면됩니다.

>>"Output_hvac.xls" echo %date% %time% 
>>"Output_hvac.xls" SQLCMD ...your_options_minus_the_-o_option... 

또는

>>"Output_hvac.xls" (
    echo %date% %time% 
    SQLCMD ...your_options_minus_the_-o_option... 
) 
관련 문제