【发布时间】:2019-06-21 19:28:25
【问题描述】:
我有一个 c# 应用程序插件,我需要从中验证数据库的架构。由于我正在扩展的应用程序的限制,我不能使用任何明显的框架,而是需要找到一种替代方法来确认数据库过程是否存在以及是否需要更新(如果过程本身已更改)从预期中)。除了为每个过程编写单独的查询之外,我可能会考虑其他更好的解决方案吗?
【问题讨论】:
-
如何验证架构?你有表/列/过程的构建时间列表吗?运行?它是动态的吗?
-
我需要验证大约数百个数据库过程(即确保它没有更改),我需要测试几十个表以确保字段符合预期。假设这些不会被我正在构建的应用程序更改或者用户不会更改表模式是不够的。由于这些意想不到的变化,我正在构建的工作流程失败了,我正试图找到一种方法来测试和自动化修复。
-
用户为什么以及如何更改架构对象?听起来您需要数据库的安全性以仅允许对某些用户进行更改。您现在所拥有的是一场安全噩梦。此外,如果架构已更改,那么您会做什么 - 回滚?
-
我使用底层数据库对象,但不拥有它的所有元素并且不能限制访问...我知道。这很糟糕,整个项目基本上都是我在做一些事情......
-
我猜你会做的任何事情都会是性能猪。通过 SSMS 为“正常”大小的数据库生成脚本可能需要 30 多分钟。从 c# 代码运行将需要更长的时间。我真的会推动锁定您的数据库 - 我不希望您从前端执行的任何操作都会有效。
标签: c# sql .net sql-server