我有一个应用程序,它以离线/断开连接的方式生成 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/