【问题标题】:How to periodically update SQL Server table from an Excel sheet如何从 Excel 工作表定期更新 SQL Server 表
【发布时间】:2020-08-13 21:02:56
【问题描述】:

对于我的 .NET 应用程序,我有一个用作数据源的 Excel 文件。此 Excel 文件每小时更新一次。我目前的后端数据库技术是 MS Access。 Access 文件有一个指向上述 Excel 文件的链接表。我想将我的后端切换到 SQL Server。

我的问题是如何在 SQL Server 中创建链接表,以便我的 SQL Server 数据库中始终拥有当前数据。现在我已经设法通过 SQL Server Mgmt 中的导入向导导入 Excel 工作表。工作室。但显然这是静态的(不像 Excel 表格那样每小时更新一次)。

我可以创建某种程序,每小时运行一次,读取 Excel 表并导入我的 SQL Server 数据库吗?我该怎么做呢?或者任何其他方法,只要我在 SQL Server 中的表每小时使用 Excel 工作表中的数据进行更新。

【问题讨论】:

  • 有几种不同的方法可以做到这一点。我建议您首先使用 Google Fu 研究该主题。一些感兴趣的领域可能是 SQL 代理、OPENROWSET 和 Linked Server to Excel。您也可以在 SQL 之外使用另一种语言(如 C#)执行此操作。有很多不同的可能性。

标签: sql-server excel auto-update ssms-2014


【解决方案1】:

一,不要从excel文件中读取“正在处理”的代码。那是一场等待发生的灾难。一些用户打开文件,锁定它,现在你的 sql-server 开始失败。 :) 这是一个糟糕的场景。

您应该创建一个 ETL 包来运行(每小时)?

https://docs.microsoft.com/en-us/sql/integration-services/ssis-how-to-create-an-etl-package?view=sql-server-ver15

什么是 SQL Server 集成服务 (SSIS)?微软SQL服务器

集成服务 (SSIS) 是用于构建的平台 高性能数据集成解决方案,包括提取, 用于数据仓库的转换和加载 (ETL) 包。 SSIS 包括用于构建和调试的图形工具和向导 包裹;用于执行工作流功能的任务,例如 FTP 操作、执行 SQL 语句和发送电子邮件消息; 用于提取和加载数据的数据源和目的地; 用于清理、聚合、合并和复制数据的转换; 一个管理数据库,SSISDB,用于管理包的执行和 贮存;和用于编程的应用程序编程接口 (API) 集成服务对象模型。

用于提取和加载数据的数据源和目的地;

部署和计划:

https://www.mssqltips.com/sqlservertutorial/9069/deploy-and-schedule-an-sql-server-integration-services-ssis-package-step-by-step/

使用 SQL Server 代理计划 SSIS 包 手动执行包是一回事,但通常您会安排包,以便您的 ETL 可以在特定时间窗口中运行 (可能在晚上)。最简单的选项是 SQL Server 代理。你可以 右键单击 Jobs 节点以创建新作业:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-02
    • 1970-01-01
    • 2012-08-12
    • 1970-01-01
    • 1970-01-01
    • 2015-12-05
    • 1970-01-01
    • 2022-12-15
    相关资源
    最近更新 更多