이러한 설정의 다른 조합은 결과가 부정확하거나 부분적인 데이터를 가져올 수 있습니다. 이는 Microsoft가 이러한 문제를 해결하는 것이 중요하다고 생각하지 않았기 때문입니다. 결과를 파일로 보낼 때 CSV 파일에서 어떤 일이 발생하는지 설명하고 있습니다.
좋은 결과를 얻으려면 다음을 수행하십시오.
새 쿼리 창 열기 (새 탭 / 세션) ... 그렇지 않으면 아래 구성이 손실되고 기본값으로 다시 설정됩니다.
따옴표 안의 따옴표를 처리하는 쿼리를 작성하고 모든 문자열 데이터 유형을 따옴표로 묶습니다. 또한 다른 DBMS 및 프로그래밍 언어 문법은 이스케이프 된 큰 따옴표에 대해 다른 구문을 허용합니다 (이 출력을 다른 시스템에 대한 입력으로 사용하는 경우). 일부 사용 \"
. 일부 사용 ""
. XML은 "
;. 아마도 마이크로 소프트가이 기능을 무시하기로 선택한 이유 일 것입니다. 그래서 그들은 논쟁을 다룰 필요가 없었습니다.
.. 새 시스템의 이스케이프 시퀀스가 ""
.
SELECT '"' + REPLACE(CAST(column1 AS VARCHAR(MAX)), '"', '""') + '"' FROM table1
.. 새 시스템의 이스케이프 시퀀스가 \"
.
SELECT '"' + REPLACE(CAST(column1 AS VARCHAR(MAX)), '"', '\"') + '"' FROM table1
구성 :
쿼리 옵션> 결과> "결과를 복사하거나 저장할 때 열 머리글 포함"선택
쿼리 옵션> 결과> ".csv 결과를 저장할 때 목록 구분 기호가 포함 된 인용 문자열" -BROKEN; 사용하지 마세요!
쿼리 옵션> 결과> 기타 선택 취소
쿼리 옵션> 결과> 텍스트> 쉼표로 구분 (오른쪽 상단에 설정)
쿼리 옵션> 결과> 텍스트> "결과 집합에 열 머리글 포함"선택
쿼리 옵션> 결과> 텍스트> 기타 선택 취소
쿼리 옵션> 결과> 텍스트> "각 열에 표시되는 최대 문자 수"-문자열이 잘리지 않도록 최대 길이로 설정합니다.
Query> Results To File (3 가지 옵션 모두 전환)
쿼리 실행 (F5)
보고서의 파일 이름에 대한 프롬프트
결과를 보려면 파일을 엽니 다.
참고 :이 작업을 정기적으로 수행해야하는 경우 .NET 또는 Java 또는 익숙한 언어로이 작업을 수행하는 프로그램을 개발하는 것이 좋습니다. 그렇지 않으면 실수 할 가능성이 높습니다. 그런 다음 SQL Server에서 내보내기를 정의하기 전에 가져 오는 시스템의 구문을 잘 알고 있어야합니다.