2014-12-16 9 views
2

MS SQL Server 저장 프로 시저에서 데이터를 내보내고 다른 시트의 파일을 Excel로 내보내려는 작업이 하나 있습니다. (같은 Excel 파일의 다른 시트) 오리 엔테이션은 풍경, 엑셀 시트의 A 열의 값 다음에 페이지 나누기 등이 있습니다.MS SQL 서버에서 데이터를 내보내기 저장 절차

마지막으로 전자 메일로 파일을 보냅니다.

이 작업에 적합한 방법을 제안하십시오. SSRS, SSIS 패키지 작성 또는 Sore 프로 시저 개념 생성. 이 작업을 완료하기위한 링크 또는 예제를 제안하십시오.

지금이 작업을 수동으로 수행 중이므로 자동화를 통해이 작업을 완료해야합니다. 도와주세요.

답변

1

는 현재

https://www.simple-talk.com/sql/database-administration/creating-csv-files-using-bcp-and-stored-procedures/

CSV 파일을 만들 수있는이 문서 사용하여 대량 복사 프로그램 (BCP) 좀 걸릴 수 있습니다. DTS 또는 SSIS를 사용하여 CSV 파일을 만들 수도 있지만 BCP를 사용하면 더 간단하고 효율적입니다.

나는 추출 할 예제 테이블로 master..sysobjects를 사용합니다.

파일에 데이터베이스 테이블에서 데이터를 복사하는 가장 간단한 방법은 간단 CSV 파일

만들기 기본 BCP 명령을 사용하는 것입니다

BCP 밖으로 master..sysobjects을 C : \ sysobjects.txt - C -t, -S -T 다음 CSV 파일을 생성하기위한 BCP 명령 기본 형식 그대로 :

아웃 BCP

여기에 사용 된 스위치는 :

-c Output in ASCII with the default field terminator (tab) and row terminator (crlf) 
-t override the field terminator with "," 
-T use a trusted connection. Note that U –P may be used for username/password 
-S connect to this server to execute the command 

DTS/SSIS와 마찬가지로 BCP는 클라이언트 유틸리티이므로 연결 정보를 제공해야합니다.

SQL 서버간에 데이터를 전송하려면 -c 대신 원시 데이터 형식 (-N = 유니 코드)에 -n 또는 -N을 사용하십시오. 이것은 훨씬 빠르며 데이터 변환 문제를 피할 수 있습니다. BCP 명령의 전체 형식은 이전 BOL 링크를 참조하십시오.

BCP는 명령 줄 유틸리티이므로 xp_cmdshell을 사용하여 T-SQL에서 실행됩니다. c : 드라이브에 BCP라는 디렉토리를 만들고 다음을 실행하십시오.

declare @sql varchar(8000)select @sql = 'bcp master..sysobjects out 
c:\bcp\sysobjects.txt -c -t, -T -S'+ @@servernameexec master..xp_cmdshell @sql 
1

SSRS는 아마도 사용자가 원하는 것을 달성하는 가장 간단한 방법 일 수 있습니다.여기에 설명 된대로 별도의 시트에 엑셀 출력을 분할하는 그룹을 사용합니다 :

Reporting Services export to Excel with Multiple Worksheets

보고서를 설정 한 후, 당신은에서 파일을 전송하는 데이터 기반 구독을 설정할 수 있습니다 소정의 스케줄에 따라 일정한 간격 : OLEDB 소스,617,451 :

http://msdn.microsoft.com/en-GB/library/ms159150(v=sql.105).aspx

2

SSIS 가능한 데이터 내보내기가 사용

소스를 능가 할대상 : 실행 디테일

패키지를 만들고 배포 한 후에는 SQL Server 에이전트에서 예약하십시오.

1

SSRS는 여러 Excel 워크 시트로 내보내기를 지원합니다. 다음은 방법을 설명하는 링크입니다. http://technet.microsoft.com/en-us/library/dd255278.aspx

전자 메일 주소를 알고 있고 작업 중에 데이터베이스에서 검색해서는 안되는 전자 메일을 보내려면 표준 구독을 만들 수도 있습니다.

다른 옵션은 타사 도구를 사용하는 것입니다. SSRS 및 저장 프로 시저에 대한 직접 호출을 비롯한 여러 보고서 유형을 지원합니다. http://www.r-tag.com/Pages/Preview_Demo.aspx

이 도구는 무료하지이지만, 설정 실행하거나 분 정도의 작업을 예약 할 수 있습니다 : 당신은 그것을 작동하는 방법에 대해 알아 보려면이 동영상의 처음 몇 분을 확인할 수 있습니다. 이 도구의 장점 중 하나는 Excel 파일을 형식화하여 요약 및 필터가 포함 된 Excel 테이블로 내보낼 데이터를 설정할 수 있다는 것입니다. 그룹화, 피벗 등 다양한 방식으로 데이터를 표시 할 수도 있습니다.이 도구는 SSRS에 대한 데이터 기반 구독을 지원합니다. @SQLDiver는 전자 메일을 보내려면이 방법을 사용하도록 제안했지만 SQLServer Enterprise에서는 데이터 기반 구독 만 사용할 수 있습니다. 이 도구는 데이터 기반 보고서가 필요한 경우 Enterprise Edition의 저렴한 대안 일 수 있습니다. 따라서 그것은 당신의 필요에 달려 있습니다. 이와 같은 작업이 하나뿐이라면 SSRS 또는 SSIS를 기반으로하는 솔루션이 더 저렴하고 아마도 더 나은 선택이 될 것입니다. 장래에 여러 가지 작업을 계획하고 있다면 특별한 형식이 필요하거나 타사 도구가 있는지 점검 할 가치가있는 데이터 기반 서브 스크립 션이 필요합니다.

관련 문제