• SQL脚本获取指定SQLServer数据库所有表及视图的字段列表及类型、长度


    今天在客户这里发布更新版本的Socket程序,此次发布的更新版本因为涉及修改的地方比较多,程序方面有,数据库方面也有。程序都有版本控制,相对比较容易控制检查。但是数据库方面由于之前没有加入版本控制,所以检查起来就比较难了。起初考虑将正式系统数据库和测试系统数据库都导出一份生成脚本,用于进行比对,但是导出之后发现生成的顺序不同,上兆的文件没有办法进行比对。

    由于此次升级主要是新增,所以记得只是新增加了两个表,修改了几个表中的已有字段长度,并增加了字段,所以考虑自己写一个脚本用于将数据库中所有表及字段的名称、类型及长度都显示出来然后进行比对。

    大概的思路就是利用系统表中存储的信息来进行数据库结构获取,相对还是比较简单的。脚本如下:

    Select o.Name As ObjectsName , c.name As ColumnsName , t.name As ColumnsType , c.length As ColumnsLength
    From SysObjects As o , SysColumns As c , SysTypes As t
    Where o.type in ('u','v') And o.id = c.id And c.xtype = t.xtype
    Order By o.name , c.name , t.name , c.Length

    下面简要说明一下:

    SysObjects
    在数据库内创建的每个对象(约束、默认值、日志、规则、存储过程等)在表中占一行。只有在 tempdb 内,每个临时对象才在该表中占一行。

    SysColumns
    每个表和视图中的每列在表中占一行,存储过程中的每个参数在表中也占一行。该表位于每个数据库中。

    SysTypes

    每种数据类型和用户定义数据类型的详细信息。

    更加详细的内容就不多写了,网络上一搜就到处都是,自己备注一下,下次更新还能用得到。呵呵

  • 相关阅读:
    PHP常用字符串函数
    PHP 中解析 url 并得到 url 参数
    PHP中的10个实用函数
    虚拟主机知识全解
    php三种常用的加密解密算法
    Javascript中的位运算符和技巧
    ECMAScript 5中新增的数组方法
    捕捉小括号获取的内容保存在RegExp的$1 $2..属性中
    js获取浏览器窗口的大小
    关于switch的思考和总结
  • 原文地址:https://www.cnblogs.com/songhaipeng/p/2504648.html
Copyright © 2020-2023  润新知