2013-11-21 5 views
0

SQL 자체의 결과를 사용하여 SQL 쿼리 결과를 CSV 파일로 변환 할 수 있습니까? SQL Server 2005 이상에서 작동하는 솔루션을 찾고 있습니다. 나는 구글을 둘러 보았고 대부분이 관리 스튜디오, XML 기반 솔루션 및 SQLcmd에서 point-n-click 옵션을 제안했다. 나는 그 해결책을 원하지 않는다.SQL 쿼리의 결과를 SQL 자체로 CSV로 변환 하시겠습니까?

일반 SQL로 처리 할 수 ​​있습니까? 편집 - 가능한 SQL 만 사용하여 결과를 CSV 파일에 저장할 수 있습니까?

답변

3

BCP 도구를 사용하십시오. SQL Server의 일부입니다. 또한 'csv'는 잘 정의 된 형식이 아닙니다. 필드와 행 분리 문자 (보통 쉼표와 개행 문자)를 포함하는 필드를 어떻게 처리할지 생각해 봐야합니다.

SQL Server 세션에서이 작업을 실제로 시작해야하는 경우 몇 가지 방법이 있습니다. 그들 모두는 clunky합니다. 실제로 SQL Server 서비스를 실행하는 Windows 계정에는 CSV를 저장할 파일 시스템에 대한 쓰기 권한이 없을 수도 있습니다. 에 권한이 없어야합니다.

SQL 외부에서이 작업을 시작하는 것이 좋습니다.

+0

예, VB 나 C# 같은 일부 프로그래밍 언어. –

2

쉼표가 SELECT '"' + ColumnWithCommas + "'" + ... FROM Table

편집을 사용하여 탈출하여 결과 문자열

에서 문자열 연결을 사용하지만 쉼표에 대한주의가 될 수 있습니다 당신은 복사/붙여 넣기 그것에 의해 CSV 데이터를 저장해야 할 수 있습니다. 대체 방법으로는 this을 사용하고 있지만 사용 권한에는주의해야합니다. 이상적으로 계정에 디스크에 저장할 수있는 권한이 없어야합니다.

+0

두 번째 캐스팅 전에 더하기가 필요합니다. SQL 자체를 사용하여 파일에 저장할 수 있습니까? –

+0

그냥 이해하려고합니다. 당신은 CSV로 SQL 쿼리에서 출력 파일을 기대하고 있습니까 ?? – goofyui

+0

@goofyui - 예, 그게 내가 기대하는 바입니다. PDF에 대한 해결책이 있습니다 - http://www.sqlservercentral.com/articles/Miscellaneous/creatingapdffromastoredprocedure/1104/ –

0

SQLCMD를 사용할 수 있습니다 (컴퓨터에 SSMS가 있으면 있어야 함). 명령 프롬프트를 표시하십시오. 이 명령은 다음 행에 해당합니다.

sqlcmd -U <userid> -P <password> -S <hostname or ip> -q "<your select statement>" -o "<target file>" 

큰 따옴표가 필요합니다. 그것은 그들과 함께 나를 위해 일하므로 걱정하지 않아도됩니다. 다른 분리를 원하는 경우

, 각 행의 폭에 따라 -s "<separator character>"

를 추가, 당신은 주위 -w <number of characters>과 혼란에있을 수 있습니다, 또는 데이터 배치를 시작할 수 있습니다.

편집 : Anon은 CSV로 인한 과제에 대해 몇 가지 좋은 점을 제시합니다.

관련 문제