回答

收藏

如何比较/验证SQL模式

技术问答 技术问答 353 人阅读 | 0 人回复 | 2023-09-14

我正在寻找一种在更新应用程序版本后在生产数据库上验证SQL模式的方法。如果应用程序与数据库模式版本不匹配,则应该有一种警告用户并列出所需更改的方法。3 g! `/ T: x0 F2 V
是否存在具有内置功能的工具或框架(以编程方式使用)?还是有一些简单的算法可以进行这种比较?
4 E2 A# G$ |0 i9 R
3 g$ v. s/ G, a2 g- ]更新: 红色大门列出了“ 395美元起”。有什么免费的吗?还是比保留版本号更简单?
, y  }2 B% r0 Y6 E3 F6 W

& r+ N8 [1 r5 V$ U6 w: c6 ?' n               
, Z/ ?: `& D* G# j, R& k解决方案:& B* c" R9 {- q/ v
                1 E+ r$ X8 \) w  r% h! m5 d- r. M

$ v# y# ]7 n1 O" k" `
# H2 _- N8 \8 w4 K2 g                试试这个SQL。8 Q$ l1 E+ h+ S* {7 Y7 N( `8 T
-针对每个数据库运行它。) r* p: N5 {7 f, y- ?
-将输出保存到文本文件。
0 W- o" @9 X" c* m) Z! H-区分文本文件。 0 a( ]6 C8 B* D2 P; [
/* get list of objects in the database */  W. C+ p1 j  w" }9 @& `; a
SELECT name, 7 Q2 f7 ?* h2 P1 A
       type
3 n7 R  G$ R5 ]6 cFROM  sysobjects' ~) Q) D/ ^: J: |! F) x( D2 F
ORDER BY type, name
/ `$ n$ `9 M; s9 J" u2 l& G! k/* get list of columns in each table / parameters for each stored procedure */
: H5 b+ P/ ^" Y/ s, J( g' `) H# M5 e; {SELECT so.name,
5 p& Q5 m: ^: q6 G% l/ O       so.type, ! j3 `/ R2 \! z. T( P
       sc.name, : v+ G+ C. ]: v2 y, ^2 K0 q, U" v
       sc.number, ; a, L4 z  h; W  F% [" W
       sc.colid,
  c: u6 {4 T# ^& z, w% z" l8 t       sc.status,
3 S6 y* }0 l! ~       sc.type, 8 Q" u3 T* h; Q& S/ L8 y4 A
       sc.length,
. i$ E& B+ b/ c' f/ T$ U+ r       sc.usertype , 7 G1 s8 v4 n* J& B* u0 Q0 i6 L+ p
       sc.scale
0 j& g2 @0 T: D/ zFROM   sysobjects  so , / C5 p% j9 ?% v/ g5 r  ~$ C4 B
       syscolumns  sc
5 q) J: ]- D. g$ a% nWHERE  so.id = sc.id
. s3 S& J4 u# s/ Z9 D' h3 sORDER BY so.type, so.name, sc.name
) `! U$ a( i; ~2 p! q/* get definition of each stored procedure */
# R% j( `& r, X* p) DSELECT so.name, 5 Y8 K- L8 ]9 u
       so.type,
0 m- n9 H8 L! }. v4 w$ u# `' B( }       sc.number, ; i) r; Q- m  C# s' K/ U
       sc.text
2 K* Y+ S2 t4 w+ }5 L0 XFROM   sysobjects  so ,
) c; Q, H+ n' o1 x       syscomments sc
$ `. c. K- d" R* Z  `1 d0 V! MWHERE  so.id = sc.id ' b# H8 W, o$ ~
ORDER BY so.type, so.name, sc.number
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则