如何读取包含SQL代码的文本文件并执行它

时间:2013-12-12 16:27:04

标签: sql-server database vb.net sql-server-2008 text-files

我正在寻找创建一个文本文件,该文件将包含用于创建数据库及其表的SQL代码,以及稍后修改相同的数据库。

文本文件将通过用户安装的应用程序读取,运行时,应该读取文本文件并创建或修改数据库(如果已应用任何更改)。

当然,SQL文本文件应该有所验证,以便不重复表等。

我没有要求任何代码,只是我应该遵循的特定途径才能实现这一目标。

感谢您的意见。

4 个答案:

答案 0 :(得分:2)

我通过SQL脚本创建数据库,该脚本检查表/视图/ SP /等的存在。在创建它们之前,我将通过ADO.NET在VB应用程序中执行它。我将它与应用程序一起发送到一个子目录中。读取文本文件或通过ADO.NET执行SQL字符串并不是什么大问题。

我在数据库中有一个VERSION表,用于标识安装了哪个DB模式版本,当我发布修改了DB的升级脚本时,我会让他们更新VERSION表。您发布的第一个版本是1.0,此后适当增加。

所有SQL对象创建/检测/版本控制逻辑都在SQL中。到目前为止,这是在客户端上执行此操作的最简单方法,这是开发和测试之前最简单的事情(MS SQL Management Studio是一个天赐之物),这是最简单的事情来区分以前的版本,存储在源代码控制中,等。

顺便说一句,我也应该让我的应用程序严格通过存储过程与数据库进行交互,而且我绝对不会给SQL提供任何连接的字符串。进入SQL的所有参数都应该通过ADO.NET的SqlParameter机制提供,这非常酷,因为它可以生成干净,可读的代码,并为您清理所有参数。曾经使用崩溃在撇号上的数据库应用程序?他们没有消毒他们的参数。

答案 1 :(得分:1)

如果你问的是How do I read a text file and make the results execute in SQL

我会使用StreamReader将文本文件读入string变量。

读完后,请继续打开与数据库的连接,并使用ExecuteNonQuery变量的值string进行操作。

答案 2 :(得分:0)

我会在评论中发帖,但我不能。我想这可能就是你要找的东西。

Is it possible to execute a text file from SQL query?

答案 3 :(得分:0)

使用MS SQL Server Management Studio完善脚本: http://technet.microsoft.com/en-us/library/ms174173.aspx

SSMS附带服务器安装,可用于SQL Express版本。 (在客户端PC上不需要它,但它可能对调试很有用。

这很可能是一个低安全性的环境,每个用户都可以完全控制数据库。

对于那里,可以非常直接地阅读文本文件并对数据库运行它。只需获得连接并发送脚本:

                    Dim cmd As New Data.SqlClient.SqlCommand
                    con.Open()
                    cmd.CommandText = SQL
                    cmd.Connection = con
                    cmd.ExecuteNonQuery()

您可能希望在开发PC上使用虚拟机,因为它可以让您快速测试脚本和代码,并返回基线状态。