2012-05-03 2 views
0

SQL 명령을 사용하여 CSV를 만들려고합니다. 나는 간단한 테이블을 테스트로 사용하고있다.sqlcmd로 csv 만들기

DECLARE @sql VARCHAR(1000), 
     @cmd VARCHAR(100), 
     @sqlCommand VARCHAR(1000) 

Set @cmd = 'Select * From DSG.Pawtucket.counts' 

SET @sqlCommand = 'SQLCMD -S <server> -U <user> -P <password> -d <database> -W -Q "' + @cmd + '" 
-s "|" -o <network path> -h-1' 

EXEC master.dbo.xp_cmdshell @sqlCommand 

내가 '결과'탭에서 쿼리 결과를보고 나는 오류가 나타날하지만 내 파일이 생성되지 않습니다 : 나는 지금까지 서면으로 작성했습니다. 유효한 네트워크 경로를 사용하고 있다는 것을 알고 있습니다. 나는 SQL 서버 로컬 C : 드라이브에 파일을 만들려고했지만 성공하지 못했습니다. 나 또한 많은 좌절감과 결과가있는 bcp를 사용하여 시도했다. 어떤 도움이라도 대단히 감사하겠습니다!

답변

4

SET @sqlCommand = 'SQLCMD -S <server> -U <user> -P <password> -d <database> -W -Q "' + @cmd + '" 
-s "|" -o <network path> -h-1' 

가 xp_cmdshell을 두 개의 명령을 전송 쓴 리터럴 문자열

에 줄 바꿈을 제거하기

당신에 @cmd에서 당신에게 결과를 제공합니다 첫 번째 명령 결과 탭. 아무것도

다음
-s "|" -o <network path> -h-1' 

하지 않습니다

SET @sqlCommand = 'SQLCMD -S <server> -U <user> -P <password> -d <database> -W -Q "' + @cmd + '"  

그리고 이것은 당신이 원하는 것입니다. 이외에도 캐리지 리턴을 제거에서 나는 또한이 지금은 거대한 구멍 나는 것을 단지 돼 패치를했습니다! 그 것이었다, @cmd

SET @sqlCommand = 'SQLCMD -S <server> -U <user> -P <password> -d <database> -W -Q "' + @cmd 
+ '" -s "|" -o <network path> -h-1' 
+1

덕분에 무엇이든 분리 할 -s 필요하기 때문에 " '후 공간을 추가 벽에 머리를 두드려서 벽에 만들었습니다. 진심으로 ... 고맙습니다. 나는 그걸 알아낼 수 있었어야했는데, 나는 이미 너무 좌절하여 신선한 눈 쌍이 정말로 도움이되었습니다. – cloud311