SQL 쿼리 결과에서 대용량 데이터 복사


9

내 SQL Server 2008에서 쿼리를 실행 한 후 데이터 반환은 수백만으로 매우 큽니다. 복사를 시도했지만 예외 SQL 메모리 오류가 발생합니다. 전체 데이터를 복사하여 Excel에 붙여 넣는 방법을 알려주십시오.

데이터가 정렬되지 않아 txt 파일로 내보내고 싶지 않습니다. 그래서 수동으로 복사하여 Excel에 붙여 넣고 싶습니다. 그 해결책을 알려주세요


설명의 요점 : SSMS가 들어오는 데이터를 처리하려고 할 때 "메모리 부족"예외가 발생할 수 있습니다. 메모리에 맞는 것보다 많은 것이 있으면 오류가 발생합니다. 메모리 부족 오류가 발생하지 않지만 데이터를 복사하여 붙여 넣을 때 발생하는 경우 복사 및 붙여 넣기를 위해 두 번째로 데이터를 메모리에 복사하는 데 문제가 있습니다 . SMSS 로의 데이터 리턴을 우회하는 (예 : 현재 승인 된 응답 과 같은 ) 응답 은이를 피합니다.
RDFozz

답변:


17

원하는대로 복사하여 붙여 넣을 수 없습니다. 그러나 몇 가지 옵션이 있습니다. 가장 간단한 방법은 출력을 마우스 오른쪽 버튼으로 클릭하고 CSV 파일로 저장하는 것입니다. 텍스트 데이터에 쉼표가 없다고 가정합니다.

결과를 다른 이름으로 저장

다음 옵션 (및 아마도 최선)은 내보내기 마법사를 사용하는 것입니다. 데이터베이스 이름, 작업, 내보내기 마법사를 마우스 오른쪽 버튼으로 클릭하십시오.

마법사는 어디에 있습니까?

소스는 마우스 오른쪽 버튼으로 클릭 한 데이터베이스가됩니다.

출처

엑셀 목적지를 선택하십시오.

목적지

전송할 데이터를 지정하려면 쿼리 쓰기를 선택하십시오.

검색어 선택

검색어에 붙여 넣기

검색어에 붙여 넣기

여기에서 스프레드 시트의 시트 이름을 변경할 수 있습니다.

소스 테이블 선택

다음은 검토 할 매핑 목록입니다.

매핑 목록

여기에서 패키지를 즉시 실행하거나 나중에 사용 / 수정할 수 있도록 SSIS 패키지를 저장할 수 있습니다. 내보내기가 처음으로 작동하지 않고 SSIS에 익숙한 경우 패키지를 저장하여 마법사 외부에서 수정할 수 있습니다.

저장 및 실행 옵션

그런 다음 완료를 누르고 다시 완료하십시오.


2

Excel을 대상으로 고집하면 두 가지 쉬운 옵션이 있습니다.

먼저, 기본 "sqlcmd.exe"또는 "bcp.exe"를 사용하면 쿼리를 실행하고 자동으로 파일로 출력합니다. 데이터에 탭이 없다고 가정하면 탭으로 구분 된 출력이 자동으로 Excel 열에 입력됩니다. 데이터에 탭이있는 경우 다른 구분 기호를 선택하고 가져 오는 동안이를 기준으로 Excel에서 열을 선택해야합니다.

둘째, 쿼리를 SSRS (SQL Server Reporting Services) 보고서에 드롭하고 실행 한 다음 플로피 디스크 / 저장 아이콘 오른쪽의 화살표를 클릭하고 Excel로 내 보냅니다. 수백만 개의 행에 SSRS 2012가 필요하며 .xlsx로 저장됩니다. 불행히도 SSRS 2008 R2조차도 64k 개 이상의 행을 허용하지 않습니다. 자동화하려면 보고서를 예약하십시오.

이 명령에 대한 참조 :

Technet sqlcmd 항목

테크넷 bcp 항목

social.msdn sqlcmd 탭으로 구분 된 포럼 게시물


0

한 번만하면됩니다.

쿼리를 실행하십시오. 오른쪽 하단의 결과 창에서 왼쪽 상단의 빈 사각형을 클릭하십시오. 다른 이름으로 결과 저장 ... 기본값은 CSV입니다. 파일을 덤프 할 위치 (네트워크 공유 또는 로컬)를 선택하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.