我正在寻找创建一个文本文件,该文件将包含用于创建数据库及其表的SQL代码,以及稍后修改相同的数据库。
文本文件将通过用户安装的应用程序读取,运行时,应该读取文本文件并创建或修改数据库(如果已应用任何更改)。
当然,SQL文本文件应该有所验证,以便不重复表等。
我没有要求任何代码,只是我应该遵循的特定途径才能实现这一目标。
感谢您的意见。
答案 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)
我会在评论中发帖,但我不能。我想这可能就是你要找的东西。
答案 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上使用虚拟机,因为它可以让您快速测试脚本和代码,并返回基线状态。