sql 자동 으로 excel 로 내 보 내기 및 메 일 openrowset

6914 단어 Excel
생각:
1. 저장 프로시저 ProcA 를 새로 만 들 고 EXCEL 로 내 보 내 는 모든 업무 논 리 를 여기에 두 고 openrowset 을 사용 합 니 다.
2. SQL 2008 에 JOB 를 새로 만 들 고 스 크 립 트 단계 에서 exec 와 같은 저장 프로 세 스 를 실행 하 는 명령 을 입력 합 니 다. ProcA
3. Mail. 클릭 관리 / 데이터베이스 메 일 을 설정 합 니 다. 주로 메 일 을 보 내 는 계 정, 사용자 이름 비밀번호, smtp 서버 (왕 이 는 smtp. 163. com) 를 설정 합 니 다.
4. 이 방법 은 같은 엑셀 파일 에 만 데 이 터 를 기록 할 수 있 습 니 다. 이것 은 수 요 를 만족 시 킬 수 없습니다. BAT 스 크 립 트 (또는 SQL 의 exec 호출 cmd 명령) 를 통 해 매일 정기 적 으로 삭제 한 후에 템 플 릿 폴 더 에서 새 것 을 복사 해 야 합 니 다.
 
이렇게 하면 되 지만 DTS 는 SQLSERVER 2000 전용 이 고 SSIS 는 SQLSERVER 2005 부터 있 기 때문에 SQL 2008 에 서 는 SQL2K 의 DTS 만 가 져 올 수 있 고 새로 만 들 수 없습니다.
 
물론 실제로 조작 하면 어 려 운 점 이 많다.
 
어 려 운 점 1: openrowset 을 사용 할 때 보통 인 터 페 이 스 는 Microsoft. Jet. OLEDB. 4.0 이지 만 win 7 이나 64 비트 Windows Server 2008 에 서 는 통 하지 않 을 수 있 습 니 다. Microsoft. ACE. OLEDB. 12.0 을 사용 해 야 합 니 다. 당연히 해당 버 전의 Office 를 설치 해 야 합 니 다.
그 중: Microsoft. ACE. OLEDB. 12.0 다운로드 주소: http://www.microsoft.com/zh-cn/download/confirmation.aspx?id=23734
 
refurl: http://www.mssqltips.com/sqlservertip/1202/export-data-from-sql-server-to-excel/
 
http://msdn.microsoft.com/zh-cn/library/ms190312(v=SQL.90).aspx
 
난점 2: 메 일 설정.
refurl: http://blog.sqlauthority.com/2008/08/23/sql-server-2008-configure-database-mail-send-email-from-sql-database/
 
http://msdn.microsoft.com/en-us/library/ms175951(v=sql.105).aspx
 
http://topic.csdn.net/u/20080703/12/96547e0a-939b-4723-950d-9cd990c10701.html (첨부 파일 을 추가 하 는 방법 을 알려 드 립 니 다)
 
난점 3: IClass Factory 에서 CLSID 는 {AA40D1D6 - CAEF - 4A56 - B9BB - D0D3DC976BA 2} 의 COM 입 니 다.
이것 은 마이크로소프트 자체 의 버그 다.
refurl: http://support.microsoft.com/kb/2315727
 
http://social.msdn.microsoft.com/Forums/zh-CN/sqlkjappmsmgmt/thread/c0cf7744-3b94-46c3-97dd-f5f2335b8911
 
http://connect.microsoft.com/SQLServer/feedback/details/569732/creating-an-instance-of-the-com-component-with-clsid
 
http://www.networkquestions.org/archives/534 (철저히 해결 할 수 있 는 지 테스트 하지 않 았 음)
 
난점 4: OLE DB 액세스 인터페이스 'Microsoft. Jet. OLEDB. 4.0' 이 단일 스 레 드 유닛 모드 에서 실행 되도록 설정 되 어 있 기 때문에 분포 식 조회 에 사용 할 수 없습니다.
이 는 64 비트 운영 체제 에서 이러한 상황 이 발생 할 수 있 습 니 다. 해결 방법 은 64 비트 의 Office 와 해당 하 는 AccessDatabaseEngine. exe 를 설치 하 는 것 입 니 다.
refurl: http://social.msdn.microsoft.com/Forums/en/vbgeneral/thread/58c4c61e-fa86-4809-bf7d-21bacb055d3e/
 
 
관련 참고 자료:
1、
(오리지널) SQL 을 EXCEL - DTS 로 내 보 내 는 방법, BCP 방법 비교
http://www.cnblogs.com/liweibird/articles/611883.html
 
2. 작업 과 DTS 패 키 지 를 이용 하여 엑셀 보고 서 를 자동 으로 내 보 냅 니 다.
http://hi.baidu.com/mmaey/item/511e5f74f94da523d7a89cd0
 
3. Sql Server 조회 분석 기 에서 Excel 표를 읽 는 데 발생 하 는 문제점 해결
http://hi.baidu.com/luck001221/blog/item/97e06539192fa830b9998f79.html
 
4. 확장 읽 기, mdac 2.6 다운로드
이 mdac 2.6 다운 로드 를 믿 지 마 세 요. 이 게임 은 엑셀 2007 을 방문 하 는 것 이 아니 라 Access 를 방문 하 는 것 입 니 다.
 
5. 이 방법 도 jet 4.0 을 바탕 으로 한다.
http://www.ezloo.com/2008/10/sql_server_export_to_excel.html
 
6. 비교적 완전한 openrowset 용법.
http://blog.csdn.net/Limpire/article/details/2599760
 
7. sql 문 구 를 사용 하여 엑셀 표 의 데 이 터 를 삭제 하거나 엑셀 표 의 데 이 터 를 업데이트 하 는 방법
이 건 삭제 할 수 없습니다.
refurl: http://topic.csdn.net/u/20080116/20/4eb4553c-24e2-4178-bd02-2b6adb520d98.html
 
http://topic.csdn.net/u/20080325/17/4946fbdb-8963-49d2-be60-277dddd965b5.html
 
http://blog.csdn.net/tabby/article/details/1889217
 
8. openrowset update 엑셀 의 데 이 터 를 어떻게 사용 합 니까?
refurl: http://topic.csdn.net/u/20090717/17/722078ec-0873-4372-a43b-b41eb92b8d52.html
 
9. 임시 표 의 존재 여 부 를 어떻게 판단 합 니까?
http://topic.csdn.net/t/20050609/15/4071152.html
 
저장 프로시저 에서 실 행 된 문 구 를 첨부 합 니 다:
use msdb

sp_CONFIGURE 'show advanced', 1
GO
RECONFIGURE
GO
sp_CONFIGURE 'Database Mail XPs', 1
GO
RECONFIGURE
GO

EXEC sp_send_dbmail @profile_name='congName',
@recipients='[email protected];[email protected]',
@subject='Test message',
@body='This is the body of the test message.
Congrates Database Mail Received By you Successfully.',
@file_attachments='c:\testOrder.xlsx'

SELECT sent_status FROM sysmail_mailitems
GO
SELECT * FROM sysmail_log
GO
 
 
 
 
 

좋은 웹페이지 즐겨찾기