2012-03-13 2 views

답변

1

VAR=`sqlcmd.exe <SERVER & DB OPTIONS> -r1 -h-1 -Q "SET NOCOUNT ON; SELECT COUNT(*) FROM Table"` 

당신을 위해 멋지게을해야 Windows에서 마이크로 소프트의 SQLCMD에 대해 얘기하고 (그리고 배시 따라서 Cygwin에서 또는 MSYS 또는 같은)한다고 가정.

-1

이 시도 : 내가 배치 스크립트 변수에 쿼리의 출력을 얻기 위해 사용

DECLARE @abr int 
SELECT @abr = COUNT(*) FROM mytable 
:setvar abr (@abr) 
print $(abr) 
0
여기

인 솔루션을. 이 파일은 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 매개 변수를 사용할 수 있습니다.