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

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

     

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

  • 相关阅读:
    用c#开发微信 (7) 微渠道
    Swift语言精要
    Android开发点滴
    UITableViewAutomaticDimension
    iOS中ActionSheet和Alert的区别
    本博客申明
    iOS中重用UITableView单元格时,千万别忘了这个
    Swift 2 语言精要
    Objective-C中NSString与int和float的相互转换
    Android Studio常用快捷键
  • 原文地址:https://www.cnblogs.com/wuyifu/p/3068302.html
Copyright © 2011-2022 走看看