应用程序中的数据库验证

时间:2019-06-21 19:28:25

标签: c# sql .net sql-server

我有一个C#应用程序加载项,我需要从中验证数据库的架构。由于要扩展的应用程序的限制,我无法使用任何明显的框架,而是需要找到另一种方法来确认数据库过程是否存在以及是否需要更新(如果过程本身已更改)从预期的结果。除了为每个过程编写单独的查询之外,还有什么我可以考虑的更好的解决方案?

2 个答案:

答案 0 :(得分:0)

Visual Studio中有一个数据库项目。您可以将数据库导入此项目并尝试构建。请参阅官方文档: https://docs.microsoft.com/en-us/sql/ssdt/import-into-a-database-project?view=sql-server-2017

答案 1 :(得分:0)

<twocents>
  1. 将所有对象导出到.SQL文件,并将其提交给源代码管理,并将它们写到磁盘上的文件夹中。
  2. 创建一个跟踪器表,该表将已导出的对象映射到该对象的DDL的哈希值。
  3. 在应用初始化或在其他适当时间检查数据库中的对象。
  4. 将数据库中数据库对象的DDL哈希与磁盘上的内容进行比较。如果存在视差下降,请通过执行磁盘上文件的DDL重新创建对象

使用散列可以快速检查数据库中的内容是否与您期望在数据库中的对象的结构相匹配。如何部署它值得怀疑,但是我所做的假设是,您可以控制已公开给应用程序的数据库对象。

</twocents>