zoukankan      html  css  js  c++  java
  • SQL脚本获取指定SQLServer数据库所有表及视图的字段列表及类型、长度

    摘 自: http://www.cnblogs.com/songhaipeng/archive/2012/05/16/2504648.html

    今天在客户这里发布更新版本的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

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

  • 相关阅读:
    Mybatis入门之常规操作CURD案例Demo(附源码)
    如何捕获Wince下form程序的全局异常
    如何捕获winform程序全局异常?(续)
    log4net学习目录
    如何捕获winform程序全局异常?
    有关学习的思考
    使用VS2012主题插件创建自己的主题
    Vistual Studio 2012更换皮肤
    log4net使用经验总结
    log4net使用流程
  • 原文地址:https://www.cnblogs.com/TNSSTAR/p/12802095.html
Copyright © 2011-2022 走看看