c# - 将 .sql 文件传递​​给 SQL Server 执行

标签 c# sql-server database

我有一个应用程序,它以离线/断开连接的方式生成 sql 插入和更新语句,这样我通常运行的每个查询都会简单地写入一个 txt 文件。我这样做是为了使应用程序可以继续从任何服务器运行而没有延迟,并且即使数据库不可用也可以继续工作。

在某些时候,我希望我的 C# 应用程序将此查询文件传递给 SQL Server 来执行,以便可以执行所有挂起的插入和更新。理想情况下,更新/插入列表将发生在事务中,这样我就可以看到它已完成并删除本地 txt 文件,这样我就不会尝试再次运行它。

实现这一目标的最佳方法是什么?将文件通过 FTP 传输到服务器然后怎么办?或者我应该打开一个到数据库的连接并将整个过程作为一个巨大的查询(CommandText)运行?我担心的是该文件可能有 10、20 或 50 MB,因此我正在寻找比通过 SqlCommand 传递 t-sql 更强大的东西。有什么想法吗?

最佳答案

我的建议是为这些文件创建一个中央交换所。例如,创建一个 WCF 服务,您可以将 .sql 文件上传到服务器。然后让 WCF 服务处理 .sql 文件并将其删除。这样,您可以继续断开连接,并且您的应用程序不需要知道如何处理文件,除非它们被上传。基本上是一种处理文件的“即发即忘”方法。

关于c# - 将 .sql 文件传递​​给 SQL Server 执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6245792/

相关文章:

sql-server - 创建链接 ID

sql-server - 我应该使用 EXISTS 还是 IN

mysql - 删除query1具有的query2的选择值

c# - 如何从 C# 调用带有 std::vector 作为参数的非托管 C++ 函数?

c# - 使用自定义表关闭 winform 后内存泄漏

sql - 为什么CTE计算在查询计划中重复,如何在不重复代码的情况下对其进行优化?

android - SQLite 查询后如何处理 Cursor?

mysql - 这个 Magento 查询有什么问题?

c# - 使用 C# 更新另一台机器(共享文件夹/网络)上存在的文件(web.config)中的值

c# - 在 C# 中处理粘贴事件