我们在MS SQL Server 2000中有一个数据库 一个表中的一列有一天消失了,我不知道它为什么会发生或什么时候发生 (请不要笑,这是一个旧应用程序,架构设计不如我想象的那么好。我是该应用程序的新支持人员。)
您知道如何跟踪MS SQL Server 2000数据库模式的更改吗?
答案 0 :(得分:1)
事实上你不会有太多事情要继续下去,但从“谁有权这样做?”开始,然后问他们所有人。
你可以通过恢复你拥有的最旧的备份来缩小“何时”缩小,查看列是否在那里,然后继续前进。如果数据库处于完全恢复模式,并且您拥有所有事务日志,则可以还原数据库并应用日志,直到列消失,但这仍然只会给您一个时间,而不是谁。
答案 1 :(得分:1)
永远不应该通过GUI修改数据库表,因为没有架构更改的记录。
在过去,我们将架构脚本放在共享文件夹中,以便我们跟踪更改。因此,员工可以直接询问是谁创建了脚本。你有.sql文件存储在任何地方吗?
另一个非常简单的源代码控制思想是将整个数据库的单个脚本存储在TFS或Subversion中,并且每周只编写数据库脚本。这允许您并排比较脚本,以便您可以直观地看到更改。我认为redgate有一个工具可以某种方式自动化它。
绝对值得考虑前进:)