Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将特定数据库中的特定SQL Server表保存为Excel文件格式的自动化日常作业_C#_Sql Server_Ssis - Fatal编程技术网

C# 将特定数据库中的特定SQL Server表保存为Excel文件格式的自动化日常作业

C# 将特定数据库中的特定SQL Server表保存为Excel文件格式的自动化日常作业,c#,sql-server,ssis,C#,Sql Server,Ssis,我是SSIS新手,我的要求是开发一个每天运行的自动化流程,以便将特定数据库中的一些SQL Server表保存到本地系统上的Excel文件中 我的机器上有以下设备: SSIS商业智能 Microsoft SQL Server集成服务设计器版本12.0.2430.0 Microsoft SQL Server数据工具12.0.61021.0 Visual Studio专业版2013 SQL Server 2012 Express edition(免费版没有导入/导出SSIS包向导) 我使用以下两种

我是SSIS新手,我的要求是开发一个每天运行的自动化流程,以便将特定数据库中的一些SQL Server表保存到本地系统上的Excel文件中

我的机器上有以下设备:

  • SSIS商业智能
  • Microsoft SQL Server集成服务设计器版本12.0.2430.0
  • Microsoft SQL Server数据工具12.0.61021.0
  • Visual Studio专业版2013
  • SQL Server 2012 Express edition(免费版没有导入/导出SSIS包向导)
我使用以下两种方法在SSBI集成服务下创建了一个SSIS包

方法1:使用文件系统任务和数据流任务
(来源:)

方法2:使用控制流中的脚本任务
(来源:)

SSIS包读取SQL Server表并将输出文件保存为本地文件夹路径中的Excel文件。包在本地Visual Studio上运行良好。但是,当我试图通过从SQLServer作业代理或从命令提示符执行SSIS包以生成bat文件来自动化该过程时,我遇到了问题

来自SQL Server作业代理:当我从本地源加载SQL Server作业代理步骤中的SSIS包时

0xC0010014**与
LoadFromXML
相关的异常失败,请参阅随附文件

我不太清楚为什么会出现这种异常,这是因为我使用了免费的SQL Server版本吗?我找不到解决这个问题的办法

从命令提示符:我在以下路径中找到了
dtexec
,最新修改日期为
C:\ProgramFiles(x86)\Microsoft SQL Server\120\DTS\Binn\dtexec.exe

我已执行以下命令

使用DTS路径120:

"C:\Program Files (x86)\Microsoft SQL Server\120\DTS\Binn\dtexec.exe" /File "C:\Users\username\Desktop\DataBackupExcel.dtsx"
结果:

异常:代码:0xC000F427
来源:文件系统任务
描述:若要在SQL Server数据工具之外运行SSIS包,必须安装Integration Services或更高版本的文件系统任务

使用DTS路径110:

"C:\Program Files (x86)\Microsoft SQL Server\120\DTS\Binn\dtexec.exe" /File "C:\Users\username\Desktop\DataBackupExcel.dtsx"
代码:0xC001700A
来源:DataBackupExcel
说明:包中的版本号无效。版本号不能大于当前版本号

代码:0xC0016020
来源:DataBackupExcel
说明:包从版本8迁移到版本6失败,错误0xC001700A;“包中的版本号无效。版本号不能大于当前版本号。”

代码:0xC0010018 来源:DataBackupExcel
描述:从节点“DTS:属性”加载值“8”时出错

由于错误0xC0010014,无法加载包“C:\Users\username\Desktop\DataBackupExcel.dtsx”

描述:由于错误0xC0010014,无法加载程序包“发生了一个或多个错误。在此错误之前应该有更多特定错误,用于解释错误的详细信息。此消息用作遇到错误的函数的返回值。”。当CPackage::LoadFromXML失败时会发生这种情况。 资料来源:DataBackupExcel


起初我认为这是一个可行的任务,但现在我被困在一个点上,我不能走得更远。我是不是遗漏了什么,或者有什么版本不匹配的地方我没办法弄清楚?请不要认为这个帖子是重复的,我已经尝试了不同的方法在SO和其他来源中提及,但是没有一个是有效的。例如(从VS更新、文件路径更改和在管理员模式下执行命令等更新SSI)

这是1对1导出吗?也就是说,您正在将一个表导出到一个Excel文件?Excel文件是专门格式化的,还是只是将表格转储到Excel中?如果您使用的是SQL Server 2014,您是否考虑过使用SSIDB而不是SQL Server agent部署包?那么就不需要DTExec了。@WEI_DBA,在开始的时候,我想把重点放在1个表到1个Excel上。我有一个Services db表,并将其导出到excel Services表中。使用我的文章方法1中提到的文件系统任务和数据流任务。Excel文件特殊格式是什么意思?@Larnu我们使用的是MS SQL Server 2012。不幸的是,我现在不能改变它。如果我没有找到SQL Server 2012的解决方案,我将要求我的团队升级到2014。您需要标准或更高级别的SQL Server版本。Express不支持SSI。