一种SQLSERVER数据库更新的存储方法和存储系统与流程

文档序号:11432280阅读:509来源:国知局
一种SQL SERVER数据库更新的存储方法和存储系统与流程

本发明涉及电数据处理领域,尤其涉及一种sqlserver数据库更新的存储方法和存储系统。



背景技术:

在项目开发中,开发项目由项目组的成员共同完成。在开发过程中,每个成员都会存在对数据库架构的变更,变更记录难以维护和追溯,在最后版本更新的时候一般通过手动方式或者第三方工具比对源数据库和目标数据库架构生产脚本。手动整合更新脚本低效并且容易出错;比对工具同样存在2个问题:1、无法追溯和审查哪些变更由谁在什么时候操作。2、只能基于当前源数据库和目标数据的所有架构比较差异生产更新脚本,不能根据具体时间点生成增量更新脚本。



技术实现要素:

有鉴于此,本发明提供一种sqlserver数据库的更新方法和更新系统,以解决现有技术无法查询更新人员,且不能生成增量更新脚本的问题。

具体地,本发明是通过如下技术方案实现的:

本发明提供一种sqlserver数据库的更新方法,所述更新方法包括:

创建数据库架构变更ddl触发器,并将待更新数据库与所述ddl触发器进行关联;

接收对所述待更新数据库的架构的更新,根据所述更新启动所述ddl触发器并记录更新内容和更新时间;

根据所述更新时间和更新内容生成更新脚本,并发布所述更新脚本。

本发明还提供了一种sqlserver数据库的更新系统,所述更新系统包括:

关联单元,用于创建数据库架构变更ddl触发器,并将待更新数据库与所述ddl触发器进行关联;

更新记录单元,用于接收对所述待更新数据库的架构的更新,根据所述更新启动所述ddl触发器并记录更新内容和更新时间;

更新脚本发布单元,用于根据所述更新时间和更新内容生成更新脚本,并发布所述更新脚本。

本发明实施例,创建数据库架构变更ddl触发器,并将待更新数据库与ddl触发器进行关联,接收对待更新数据库的架构的更新,根据更新启动ddl触发器并记录更新内容和更新时间,根据更新时间和更新内容生成更新脚本,并发布更新脚本,使得对数据库的更新全部由ddl触发器进行记录,便于从ddl触发器中查询更新内容和更新时间,不仅可以从ddl触发器获取每次更新的更新人员和更新时间,而且可以根据更新时间生成增量更新脚本。

附图说明

图1是本发明一示例性实施例示出的一种sqlserver数据库的更新方法的流程图;

图2是本发明一示例性实施例示出的一种sqlserver数据库的更新系统的结构图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

如图1所示为本发明一示例性实施例示出的一种sqlserver数据库的更新方法的流程图,所述更新方法包括:

步骤s101,创建数据库架构变更ddl触发器,并将待更新数据库与所述ddl触发器进行关联。

在本发明实施例中,数据库架构变更ddl触发器可记录的更新对象包括:数据表、视图、存储过程、函数、索引、方法、约束等,只要进行了上述的变更,即可触发数据库架构变更ddl触发器,因此本发明首先创建一数据库架构变更ddl触发器,并将该ddl触发器与待更新数据库进行关联。

步骤s102,接收对所述待更新数据库的架构的更新,根据所述更新启动所述ddl触发器并记录更新内容和更新时间。

在本发明实施例中,由于将ddl触发器与待更新数据库进行了关联,因此当存储系统接收到任何对待更新数据库的架构的更新时,存储系统根据该更新启动ddl触发器,并通过该ddl触发器记录更新内容以及更新时间。其中,更新内容包括但不限于:更新对象、更新操作信息。记录的信息包括:变更操作原始xml信息以及更新后对象的元数据信息。

所述接收对所述待更新数据库的架构的更新,包括:

接收通过脚本对所述待更新数据库的架构的更新;和/或,

接收通过ssms对所述待更新数据库的架构的更新。

在本发明实施例中,对sqlserver数据库的更新通常由操作人员通过脚本或ssms(sqlservermanagementstudio)实现,因此存储系统可接收通过脚本或通过ssms对待更新数据库的架构的更新。

步骤s103,根据所述更新时间和更新内容生成更新脚本,并发布所述更新脚本。

在本发明实施例中,根据指定的开始时间和结束时间(均记录在ddl触发器中),提取开始时间到结束时间范围内的所有变更对象的元数据最新版本和基准版本对应对象元数据比对,自动生成更新脚本,并且发布该更新脚本,保存所有基准数据库版本未变更对象的元数据和已变更对象的元数据最新版本快照,作为新的数据库版本,标记数据库版本号以及更新操作当前时间。

本发明实施例,创建数据库架构变更ddl触发器,并将待更新数据库与ddl触发器进行关联,接收对待更新数据库的架构的更新,根据更新启动ddl触发器并记录更新内容和更新时间,根据更新时间和更新内容生成更新脚本,并发布更新脚本,使得对数据库的更新全部由ddl触发器进行记录,便于从ddl触发器中查询更新内容和更新时间,不仅可以从ddl触发器获取每次更新的更新人员和更新时间,而且可以根据更新时间生成增量更新脚本。

如图2所示为本发明一示例性实施例示出的一种sqlserver数据库的更新系统的结构图,所述结构图包括:

关联单元201,用于创建数据库架构变更ddl触发器,并将待更新数据库与所述ddl触发器进行关联。

在本发明实施例中,数据库架构变更ddl触发器可记录的更新对象包括:数据表、视图、存储过程、函数、索引、方法、约束等,只要进行了上述的变更,即可触发数据库架构变更ddl触发器,因此本发明首先创建一数据库架构变更ddl触发器,并将该ddl触发器与待更新数据库进行关联。

更新记录单元202,用于接收对所述待更新数据库的架构的更新,根据所述更新启动所述ddl触发器并记录更新内容和更新时间。

在本发明实施例中,由于将ddl触发器与待更新数据库进行了关联,因此当存储系统接收到任何对待更新数据库的架构的更新时,存储系统根据该更新启动ddl触发器,并通过该ddl触发器记录更新内容以及更新时间。其中,更新内容包括但不限于:更新对象、更新操作信息。记录的信息包括:变更操作原始xml信息以及更新后对象的元数据信息。

所述接收对所述待更新数据库的架构的更新,包括:

接收通过脚本对所述待更新数据库的架构的更新;和/或,

接收通过ssms对所述待更新数据库的架构的更新。

在本发明实施例中,对sqlserver数据库的更新通常由操作人员通过脚本或ssms(sqlservermanagementstudio)实现,因此存储系统可接收通过脚本或通过ssms对待更新数据库的架构的更新。

更新脚本发布单元203,用于根据所述更新时间和更新内容生成更新脚本,并发布所述更新脚本。

在本发明实施例中,根据指定的开始时间和结束时间(均记录在ddl触发器中),提取开始时间到结束时间范围内的所有变更对象的元数据最新版本和基准版本对应对象元数据比对,自动生成更新脚本,并且发布该更新脚本,保存所有基准数据库版本未变更对象的元数据和已变更对象的元数据最新版本快照,作为新的数据库版本,标记数据库版本号以及更新操作当前时间。

本发明实施例,创建数据库架构变更ddl触发器,并将待更新数据库与ddl触发器进行关联,接收对待更新数据库的架构的更新,根据更新启动ddl触发器并记录更新内容和更新时间,根据更新时间和更新内容生成更新脚本,并发布更新脚本,使得对数据库的更新全部由ddl触发器进行记录,便于从ddl触发器中查询更新内容和更新时间,不仅可以从ddl触发器获取每次更新的更新人员和更新时间,而且可以根据更新时间生成增量更新脚本。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1