`
wandejun1012
  • 浏览: 2737941 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

sql自动导出到excel并邮件 openrowset

    博客分类:
  • DB
 
阅读更多

思路:

1、新建一个存储过程ProcA,将所有导出到EXCEL的业务逻辑全放在此,用的是openrowset

2、在SQL2008里面新建一个JOB,在脚本那一步里输入运行存储过程的命令,如exec ProcA

3、配置Mail.点击管理/数据库邮件,主要是设置发送邮件的账号、用户名密码、smtp服务器(网易的是smtp.163.com)。

4、此方法只能是往同一个excel文件中写入数据,这个不能满足需求,必须借助于BAT脚本(或者SQL的exec调用cmd命令),每天定时删除后再从模板文件夹里面拷贝一个新的。

 

这样的话就可以了,但是注意到DTS是SQLSERVER2000专用的,SSIS是SQLSERVER2005开始有的,所以在SQL2008中只能导入SQL2K中的DTS,而不能新建。

 

当然,实际操作起来的话难点特多。

 

难点一:在用openrowset时,一般用的是接口是Microsoft.Jet.OLEDB.4.0,但是在win7或者在64位的Windows Server2008里面就可能行不通,必须要用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

 

难点二:邮件配置。

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(教你如何添加附件)

 

难点三:从 IClassFactory 为 CLSID 为 {AA40D1D6-CAEF-4A56-B9BB-D0D3DC976BA2} 的 COM

这个是微软自身的BUG。

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(未测试过是否能彻底解决)

 

难点四:因为 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包自动导出excel报表

http://hi.baidu.com/mmaey/item/511e5f74f94da523d7a89cd0

 

3、解决在Sql Server查询分析器中读取Excel表出现的一些问题

http://hi.baidu.com/luck001221/blog/item/97e06539192fa830b9998f79.html

 

4、延伸阅读,关于mdac2.6下载

不要相信这个mdac2.6下载,这个玩意是用来访问Access的,而不是访问Excel2007的。

 

5、此法也是基于jet4.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语句删除excel表中数据或更新excel表中数据

这个是不可以删除的

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 excel中的数据

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='32815212@qq.com;77320038@qq.com',
@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
 

 

 

 

 

 

分享到:
评论

相关推荐

    SQL定时导出数据到Excel

    当涉及到将数据导出到Excel时,可以利用`OPENROWSET`与OLE DB驱动程序的组合来实现这一目标。 **示例代码**: ```sql INSERT INTO [SheetName]$ SELECT * FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0', 'Excel5.0;...

    SQL 导入导出Excel数据的语句

    这个存储过程可以将数据从 SQL 数据库的某个表中导出到 Excel 文件中,并且可以自动创建文件和表头。 结论 在本文中,我们介绍了如何使用 SQL 语句将数据从 Excel 文件中导入到 SQL 数据库中,以及如何将数据从 ...

    SQL Server导出表到EXCEL文件的存储过程

    ### SQL Server导出表到Excel文件的存储过程详解 #### 标题理解: - **标题内容**:“SQL Server导出表到EXCEL文件的存储过程” - **标题解读**:此标题表明文章将介绍一种在SQL Server环境中使用的存储过程,该...

    sql导入导出excel、access工具

    2. SQL导出到Excel: 反之,如果需要将SQL数据库中的数据导出为Excel格式,SSMS提供了“导出数据”功能,可以创建一个数据传输包,选择目标格式为Excel。另外,通过编写T-SQL查询并使用`BCP`命令行工具或`sqlcmd`也...

    sqlserver 数据库导出excel

    它不仅可以将数据导出到文本文件,还可以直接导出到 Excel 文件。 **具体步骤:** - 使用 `xp_cmdshell` 扩展存储过程调用 BCP 命令。首先,需要启用 `xp_cmdshell` 功能: ```sql EXEC sp_configure '...

    把Sql Server里的数据导出到Excel里面!

    本篇文章将详细讲解如何将Sql Server中的数据导出到Excel。 首先,我们需要了解Sql Server和Excel的基本概念。Sql Server是由微软开发的一款关系型数据库管理系统(RDBMS),广泛应用于存储、管理和检索大量结构化...

    SQL数据库导出成EXCEL文件

    要将SQL Server中的数据导出到Excel,你可以采用以下方法: 1. **SQL Server Management Studio (SSMS) 的“导出数据”功能**: - 打开SSMS,连接到SQL Server实例。 - 选择要导出的数据库,右键单击并选择“任务...

    sql2000 利用存储过程导出excel

    下面我们将深入探讨如何在SQL Server 2000中利用存储过程导出数据到Excel: 1. **使用OPENROWSET(BULK)**:SQL Server 2000中的OPENROWSET函数可以用来直接读取或写入文件,包括Excel文件。通过指定BULK选项,我们...

    Sql导出导入Excel

    在SQL Server中,导出和导入Excel数据是一个常见的任务,特别是在数据分析、报表生成或数据...无论是导入Excel数据到SQL表,还是从SQL导出数据到Excel文件,都有多种方法可供选择,可以根据具体需求和环境灵活运用。

    SQL使用存储过程导入和导出Excel

    - 使用适当的驱动程序连接到Excel文件,并将数据导出到文件中。 - 如果文件已存在,则直接使用该文件;如果文件不存在,则创建一个新的Excel文件。 通过以上方法,我们可以有效地利用SQL Server中的存储过程实现...

    SQL与EXCEL的导入导出

    其次,从SQL导出数据到Excel同样重要。这通常用于数据分析、报表生成或与非技术团队共享数据。SQL提供`SELECT INTO OUTFILE`(在MySQL中)或使用`bcp`命令(在SQL Server中)来生成CSV文件,然后这些文件可以在Excel...

    sql语句完成数据导出到Excel中

    "SQL 语句完成数据导出到 Excel 中" 在 SQL Server 2005 中,我们可以使用一条 SQL 语句来完成数据导出到 Excel 中,解决数据库与 Excel 表格之间的保存问题。下面我们将详细介绍如何使用 Transact-SQL 语句来实现...

    Sql与Excel互相导入导出

    首先,从SQL到Excel的数据导出是常用的操作。这通常涉及到以下几个步骤: 1. **查询数据**:使用SQL语句从数据库中提取需要的数据。你可以编写SELECT语句来选择特定的列,或者使用WHERE子句过滤数据。例如,`SELECT...

    sql导入导出命令大全

    本文将详细介绍如何使用SQL命令进行数据的导入和导出,涉及到的主要技术包括从Excel和TXT文件导入到数据库,以及从数据库导出到这些文件格式。此外,我们还将讨论如何处理其他类型的数据源,如dBase和FoxPro数据库。...

    导出excel.XLS表格数据到MS SQLSERVER数据库中.zip

    - **SQL Server Management Studio (SSMS)**:通过SSMS的“导入和导出数据”向导,可以直接连接到Excel文件并导入数据到新建或已有的表中。 - **编程方式**:可以使用T-SQL语句的`BULK INSERT`或`OPENROWSET`函数...

    Access、SQLServer、Excel三者之间实现导入与导出

    5. SQL Server到Excel导出:利用SSIS包或T-SQL的SELECT INTO OUTFILE命令生成CSV文件,然后在Excel中打开。 6. SQL Server与Access的数据交换:通过OLEDB或ODBC连接,在VBA中编写SQL语句执行查询,然后处理返回的...

    sql数据库导出excel文件[参考].pdf

    在SQL数据库中,将数据导出到Excel文件是常见的数据迁移或分析需求。这个过程通常涉及使用特定的SQL脚本或者应用程序接口(API)来实现。以下是一个在SQL Server环境下导出数据到Excel的示例过程,这个过程通过存储...

    SQL语句导入导出大全.doc

    使用以下SQL语句可以将数据导出到Excel文件中: ```sql EXEC master..xp_cmdshell ’bcp SettleDB.dbo.shanghu out c:\temp1.xls -c -q -S"GNETDATA/GNETDATA" -U"sa" -P"" ``` 2. 导入Excel 使用以下SQL语句可以...

    SQL Server SQL语句导入导出大全

    为了将数据从 SQL Server 导出到 DBF 文件,使用 INSERT INTO openrowset(’MSDASQL’, ’Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:’, ’s)命令。这里使用了 openrowset 函数来连接 DBF ...

Global site tag (gtag.js) - Google Analytics