[發(fā)明專利]基于SQLSever的數(shù)據(jù)庫結(jié)構(gòu)自動升級方法在審
| 申請?zhí)枺?/td> | 201510950276.0 | 申請日: | 2015-12-18 |
| 公開(公告)號: | CN105373631A | 公開(公告)日: | 2016-03-02 |
| 發(fā)明(設(shè)計(jì))人: | 張斌;尚會領(lǐng);宋社平;雷亞歌 | 申請(專利權(quán))人: | 河南思維自動化設(shè)備股份有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30;G06F11/14 |
| 代理公司: | 鄭州中原專利事務(wù)所有限公司 41109 | 代理人: | 張春;李想 |
| 地址: | 450001 河*** | 國省代碼: | 河南;41 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 sqlsever 數(shù)據(jù)庫 結(jié)構(gòu) 自動 升級 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)庫升級技術(shù)領(lǐng)域,尤其涉及一種基于SQLSever的數(shù)據(jù)庫結(jié)構(gòu)自動升級方法。
背景技術(shù)
一套系統(tǒng),在其整個生命周期內(nèi),伴隨客戶增量需求和實(shí)現(xiàn)邏輯的變更,常常需要進(jìn)行升級。包括軟件升級和數(shù)據(jù)庫升級。數(shù)據(jù)庫升級主要考慮增量升級,減量升級則沒有意義。主要包括表增加、字段增加、字段類型和長度變更等。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題在于提供一種基于SQLSever的數(shù)據(jù)庫結(jié)構(gòu)自動升級方法,以解決現(xiàn)有技術(shù)存在的問題。
為解決上述技術(shù)問題,本發(fā)明采用以下技術(shù)方案:
基于SQLSever的數(shù)據(jù)庫結(jié)構(gòu)自動升級方法,包括:
使用SQLSever數(shù)據(jù)庫工具生成新版本的數(shù)據(jù)庫腳本;
遍歷舊版本庫表和新版本數(shù)據(jù)庫腳本,對新版本的數(shù)據(jù)庫腳本與舊版本的數(shù)據(jù)庫表進(jìn)行對比處理,獲取處理后的數(shù)據(jù),根據(jù)處理后的數(shù)據(jù)對舊版本的數(shù)據(jù)庫表進(jìn)行修改。
,所述對新版本的數(shù)據(jù)庫腳本與舊版本的數(shù)據(jù)庫表進(jìn)行對比處理,獲取處理后的數(shù)據(jù),根據(jù)獲取的處理后的數(shù)據(jù)對舊版本的數(shù)據(jù)庫表進(jìn)行修改,包括:
遍歷新版本的數(shù)據(jù)庫腳本的表名稱和舊數(shù)據(jù)庫表的表名稱,對它們一一進(jìn)行對比比較,判斷是否是相同的名稱,篩選出新版本的數(shù)據(jù)庫腳本中與舊版本數(shù)據(jù)庫表相比新增加的表名稱,在舊版本的數(shù)據(jù)庫表中為新增加的表名稱建立新的庫表結(jié)構(gòu)。
對具有相同表名稱的表對象,進(jìn)一步依次判斷新版本的數(shù)據(jù)庫腳本與舊版本的數(shù)據(jù)庫表中每個表相對的每個字段的字段類型是否一致,不一致則使用新版本的數(shù)據(jù)庫腳本的字段類型代替舊版本的數(shù)據(jù)庫表的字段類型,對舊版本的數(shù)據(jù)庫表進(jìn)行升級,一致則不替換。
對具有相同表名稱的表對象,進(jìn)一步判斷新版本的數(shù)據(jù)庫腳本對比舊版本的數(shù)據(jù)庫表每個表相對應(yīng)的每個字段長度是否具有增量,如果具有增量則使用新版本的數(shù)據(jù)庫腳本的字段數(shù)據(jù)代替舊版本的數(shù)據(jù)庫表的字段數(shù)據(jù),對舊版本的數(shù)據(jù)庫表進(jìn)行升級,不具有增量則不替換。
本發(fā)明的有益效果:本發(fā)明可以自動進(jìn)行數(shù)據(jù)庫升級問題,解決用戶不會操作sqlsever工具進(jìn)行備份還原和升級的問題。
附圖說明
圖1為本發(fā)明的流程圖。
具體實(shí)施方式
如圖1所示本發(fā)明提供一種基于SQLSever的數(shù)據(jù)庫結(jié)構(gòu)自動升級方法升級時,它首先使用SQLSever數(shù)據(jù)庫工具生成新版本的數(shù)據(jù)庫腳本;然后遍歷舊版本的數(shù)據(jù)庫表,同時遍歷新版本數(shù)據(jù)庫腳本,對新版本的數(shù)據(jù)庫腳本與舊版本的數(shù)據(jù)庫表進(jìn)行對比處理,獲取處理后的數(shù)據(jù),根據(jù)獲取的處理后的數(shù)據(jù)對舊版本的數(shù)據(jù)庫表進(jìn)行修改,進(jìn)行數(shù)據(jù)庫表的升級。
具體來說,首先遍歷新版本的數(shù)據(jù)庫腳本和舊版本的數(shù)據(jù)庫,獲取新版本的數(shù)據(jù)庫腳本和舊版本數(shù)據(jù)庫的表數(shù)目和表名,對新版本的數(shù)據(jù)庫腳本和舊版本的數(shù)據(jù)庫的表名一一進(jìn)行對比比較,判斷是否是相同的表名,一一進(jìn)行判斷以后,篩選出新版本的數(shù)據(jù)庫腳本中與舊版本數(shù)據(jù)庫表相比新增加的表名,然后對新增加的表名在舊版本的數(shù)據(jù)庫表中建立新的庫表結(jié)構(gòu),其中相同表名稱比較字段個數(shù),對于不同字段名稱的進(jìn)行增量添加,對于舊版有而新版沒有的字段則忽略。例如說,在舊版本的數(shù)據(jù)庫中存在10個表名,而新的數(shù)據(jù)庫腳本中存在13個表名,對他們一一進(jìn)行對比篩選,找出新版本的數(shù)據(jù)庫腳本中不存在于舊版本中的3個表名,然后在舊版本的數(shù)據(jù)庫中為這三個新增表新建表結(jié)構(gòu),即對舊版本的數(shù)據(jù)庫表進(jìn)行更新。
新增表增加完以后,對新版本的數(shù)據(jù)庫腳本中與舊版本數(shù)據(jù)庫中具有相同表名的表對象,對新版本的數(shù)據(jù)庫腳本與舊版本數(shù)據(jù)庫均、以一列為一個字段,依次判斷新版本的數(shù)據(jù)庫腳本與舊版本的數(shù)據(jù)庫表中每個表相對應(yīng)的每個字段的字段類型是否一致,不一致則使用新版本的數(shù)據(jù)庫腳本的字段類型代替舊版本的數(shù)據(jù)庫表的字段類型,對舊版本的數(shù)據(jù)庫表進(jìn)行升級,一致則不替換。
在對數(shù)據(jù)庫中表的字段類型進(jìn)行判斷時,還需要判斷新版本的數(shù)據(jù)庫腳本中與舊版本數(shù)據(jù)庫中相同名稱的表對應(yīng)的相同的字段的長度是否有變動,如果有變動則使用新版本的數(shù)據(jù)庫腳本的字段數(shù)據(jù)代替舊版本的數(shù)據(jù)庫表的字段數(shù)據(jù),不具有變動則不改變。
在進(jìn)行表名判斷、字段類型判斷、字段長度判斷的過程中,同時根據(jù)新版數(shù)據(jù)庫腳本對舊版數(shù)據(jù)庫進(jìn)行修改,完成自動升級。
為了數(shù)據(jù)的安全和后續(xù)的查看,本發(fā)明在省級數(shù)據(jù)庫之前首先進(jìn)行數(shù)據(jù)的備份,而在升級后,還可以進(jìn)行數(shù)據(jù)的還原,數(shù)據(jù)庫備份和還原是基于Sqlserver企業(yè)管理器的備份和還原API實(shí)現(xiàn)的。具體如下:
一,備份數(shù)據(jù)庫
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于河南思維自動化設(shè)備股份有限公司,未經(jīng)河南思維自動化設(shè)備股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201510950276.0/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F17-00 特別適用于特定功能的數(shù)字計(jì)算設(shè)備或數(shù)據(jù)處理設(shè)備或數(shù)據(jù)處理方法
G06F17-10 .復(fù)雜數(shù)學(xué)運(yùn)算的
G06F17-20 .處理自然語言數(shù)據(jù)的
G06F17-30 .信息檢索;及其數(shù)據(jù)庫結(jié)構(gòu)
G06F17-40 .數(shù)據(jù)的獲取和記錄
G06F17-50 .計(jì)算機(jī)輔助設(shè)計(jì)
- 數(shù)據(jù)庫
- 數(shù)據(jù)庫管理系統(tǒng)及數(shù)據(jù)庫
- 數(shù)據(jù)庫構(gòu)筑裝置、數(shù)據(jù)庫檢索裝置、數(shù)據(jù)庫裝置、數(shù)據(jù)庫構(gòu)筑方法、以及數(shù)據(jù)庫檢索方法
- 數(shù)據(jù)庫和數(shù)據(jù)庫處理方法
- 數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)庫更新方法、數(shù)據(jù)庫以及數(shù)據(jù)庫更新程序
- 容器數(shù)據(jù)庫
- 數(shù)據(jù)庫同步方法及數(shù)據(jù)庫
- 一種MongoDB數(shù)據(jù)庫對象復(fù)制延遲監(jiān)控方法和裝置
- 數(shù)據(jù)分布式存儲方法、裝置、電子設(shè)備及存儲介質(zhì)
- 數(shù)據(jù)庫語句執(zhí)行方法及裝置
- 卡片結(jié)構(gòu)、插座結(jié)構(gòu)及其組合結(jié)構(gòu)
- 鋼結(jié)構(gòu)平臺結(jié)構(gòu)
- 鋼結(jié)構(gòu)支撐結(jié)構(gòu)
- 鋼結(jié)構(gòu)支撐結(jié)構(gòu)
- 單元結(jié)構(gòu)、結(jié)構(gòu)部件和夾層結(jié)構(gòu)
- 鋼結(jié)構(gòu)扶梯結(jié)構(gòu)
- 鋼結(jié)構(gòu)隔墻結(jié)構(gòu)
- 鋼結(jié)構(gòu)連接結(jié)構(gòu)
- 螺紋結(jié)構(gòu)、螺孔結(jié)構(gòu)、機(jī)械結(jié)構(gòu)和光學(xué)結(jié)構(gòu)
- 螺紋結(jié)構(gòu)、螺孔結(jié)構(gòu)、機(jī)械結(jié)構(gòu)和光學(xué)結(jié)構(gòu)





