2016-12-18 8 views
0

나는 아래에서 내가 원하는 것을 대부분 가지고있다. 나는 단지 어떻게해야 하는지를 알아야한다; 쿼리의 결과를 변수 (sqlcmd에서 batch/cmd로)로 가져 오는 방법은 무엇입니까?

  1. 가 나는에 넣어 일어날 필요가있는 무엇 수집 된 변수

의 결과에 따라 다음 조치를 수행하는 SQL 결과에서 변수를 수집;

updatedDate이 3 일 전에 있으면 GOTO BREXIT (시간 무시)입니다. 나는 다른 응용 프로그램에서 이것을 사용하고 싶기 때문에 * .sql 외부에서 이것을 처리하는 것을 선호합니다.

EG1

  • updatedDate = 2016년 5월 12일 14시 반
  • 일 전 = 2016년 2월 12일 0시
  • 결과는 = GOTO EXTRACT

예 2

  • updatedDate = 6/12/2016 02:30
  • 일 전 = 2016년 2월 12일 0시
  • 결과 = GOTO BREXIT

(댓글이 아직 코딩되지 않음) 다음 코드는 현재 : 단순 들어

echo Check last update 
sqlcmd -S MYSERVER\JD2016 -d OMNITRIX -Q "SET NOCOUNT ON SELECT MAX(updateDateTime) 'updatedDate' FROM dbo.Names;" -h-1 -b 

::(if statement would go here) 

:EXTRACT 
echo Running Omnitrix Extract 
sqlcmd -S MYSERVER\JD2016 -d OMNITRIX -i "C:\update.sql" -W -s; -h-1 > "C:\result.csv" -b 

echo Omnitrix has been extracted 

GOTO END 

::(:BREXIT) 
::(echo Please Update the Omnitrix) 

:END 
pause 
+1

배치 파일에서 IF ELSE에 대한 링크를 참조하십시오 : HTTP를 : //stackoverflow.com/questions/11081735/how-to-use-if-else-structure-in-a-batch-file – tlemaster

+0

답변 해 주셔서 감사합니다. 나는 흐름을 처리하는 방법을 안다 - 나의 질문은 어느 정도 였고, 쿼리의 결과 (즉, 05/12/2016 15:13)를 x로 캡쳐하는 방법, 날짜 만 읽는 것 (05/12/2016) 그 날짜를 현재 날짜로 - 3 – JayDesu

+0

만약 당신이 솔루션을 게시 할 수있는 답변을 여기에 심지어 그것을 받아들입니다 ... – aschipfl

답변

0

첫 번째 SQL에서 최대 날짜 만료를 직접 확인하는 것이 좋습니다. 즉 :

select case 
    when datediff(getdate(), max(yourdate)) > 3 then 'needupdate' 
    else 'ok' end 
from ... 

와는 Windows batch assign output of a program to a variable

충분히 될 것 링크와 함께 댓글 수 있음을보고,하지만 제안을 너무 오래 ...)