问题描述
对于我的.NET应用程序,我有一个Excel文件用作数据源。该Excel文件每小时更新一次。我当前的后端数据库技术是MS Access。 Access文件具有指向上述Excel文件的链接表。我想将后端切换到sql Server。
我的问题是如何在sql Server中创建一个链接表,这样我的sql Server数据库中便始终具有当前数据。现在,我已经设法通过sql Server Mgmt中的导入向导导入Excel工作表。工作室。但这显然是静态的(不是像excel表格那样每小时更新一次)。
我可以创建一种每小时运行一次,读取Excel工作表并导入到我的sql Server数据库的过程吗?我将如何去做?或任何其他方法,只要我的sql Server中的表每小时使用Excel工作表中的数据进行更新即可。
解决方法
一个,不要编码从excel文件中读取“正在进行中”的代码。那是一场灾难,等待发生。某些用户打开文件,将其锁定,然后您的sql-server开始失败。 :)这是一个糟糕的情况。
您应该创建一个ETL包来运行(每小时)吗?
什么是SQL Server集成服务(SSIS)? MicrosoftSQL Server
集成服务(SSIS)是用于构建的平台 高性能数据集成解决方案,包括提取, 数据仓库的转换和加载(ETL)软件包。 SSIS 包括用于构建和调试的图形工具和向导 包装;执行工作流功能(如FTP)的任务 操作,执行SQL语句和发送电子邮件; 提取和加载数据的数据源和目的地; 清理,汇总,合并和复制数据的转换; 一个管理数据库SSISDB,用于管理程序包的执行和 存储;和用于编程的应用程序编程接口(API) Integration Services对象模型。
用于提取和加载数据的数据源和目的地;
部署和安排:
使用SQL Server代理计划SSIS程序包 手动执行软件包是一回事,但是通常您会安排软件包,以便您的ETL可以在特定的时间窗口内运行 (大概是晚上)。最简单的选项是SQL Server代理。您可以 右键单击“作业”节点以创建一个新作业: