에서 사용할 수있는 변수에 넣으려면 SQL 쿼리 의 출력을 배치 스크립트의 변수로 사용하고 싶습니다. 이 쿼리를 실행하기 위해 sqlcmd를 사용하고 있지만 올바르게 수행하는 방법을 찾지 못했습니다.SQLCMD를 사용하여 실행 한 쿼리의 출력을 배치 스크립트
도움이나 의견을 보내 주시면 감사하겠습니다.
에서 사용할 수있는 변수에 넣으려면 SQL 쿼리 의 출력을 배치 스크립트의 변수로 사용하고 싶습니다. 이 쿼리를 실행하기 위해 sqlcmd를 사용하고 있지만 올바르게 수행하는 방법을 찾지 못했습니다.SQLCMD를 사용하여 실행 한 쿼리의 출력을 배치 스크립트
도움이나 의견을 보내 주시면 감사하겠습니다.
VAR=`sqlcmd.exe <SERVER & DB OPTIONS> -r1 -h-1 -Q "SET NOCOUNT ON; SELECT COUNT(*) FROM Table"`
당신을 위해 멋지게을해야 Windows에서 마이크로 소프트의 SQLCMD에 대해 얘기하고 (그리고 배시 따라서 Cygwin에서 또는 MSYS 또는 같은)한다고 가정.
이 시도 : 내가 배치 스크립트 변수에 쿼리의 출력을 얻기 위해 사용
DECLARE @abr int
SELECT @abr = COUNT(*) FROM mytable
:setvar abr (@abr)
print $(abr)
인 솔루션을. 이 파일은 Windows .cmd 배치 스크립트 파일에 사용됩니다. 기본적으로 임시 파일로 출력 한 다음 텍스트를 변수로 추출합니다.
sqlcmd.exe <SERVER & DB OPTIONS> -h-1 -Q "SET NOCOUNT ON; SELECT COUNT(*) FROM Table" -o output.txt
set /P recCount= < output.txt
echo %recCount%
del output.txt
공지 SQL 명령 내에서 NOCOUNT (열 출력의 제목을 억제 SQLCMD 말한다)을 -h-1 플래그의 사용은 (영향 행의 수를 억제하기 위해). 또한 문자열에 대해 쿼리가 수행되는 경우 출력에서 후행 공백을 제거하기 위해 -W 매개 변수를 사용할 수 있습니다.