SQL脚本获取指定SQLServer数据库所有表及视图的字段列表及类型、长度
2012-05-16 18:49
399 查看
今天在客户这里发布更新版本的Socket程序,此次发布的更新版本因为涉及修改的地方比较多,程序方面有,数据库方面也有。程序都有版本控制,相对比较容易控制检查。但是数据库方面由于之前没有加入版本控制,所以检查起来就比较难了。起初考虑将正式系统数据库和测试系统数据库都导出一份生成脚本,用于进行比对,但是导出之后发现生成的顺序不同,上兆的文件没有办法进行比对。
由于此次升级主要是新增,所以记得只是新增加了两个表,修改了几个表中的已有字段长度,并增加了字段,所以考虑自己写一个脚本用于将数据库中所有表及字段的名称、类型及长度都显示出来然后进行比对。
大概的思路就是利用系统表中存储的信息来进行数据库结构获取,相对还是比较简单的。脚本如下:
下面简要说明一下:
SysObjects
在数据库内创建的每个对象(约束、默认值、日志、规则、存储过程等)在表中占一行。只有在 tempdb 内,每个临时对象才在该表中占一行。
SysColumns
每个表和视图中的每列在表中占一行,存储过程中的每个参数在表中也占一行。该表位于每个数据库中。
SysTypes
每种数据类型和用户定义数据类型的详细信息。
更加详细的内容就不多写了,网络上一搜就到处都是,自己备注一下,下次更新还能用得到。呵呵
由于此次升级主要是新增,所以记得只是新增加了两个表,修改了几个表中的已有字段长度,并增加了字段,所以考虑自己写一个脚本用于将数据库中所有表及字段的名称、类型及长度都显示出来然后进行比对。
大概的思路就是利用系统表中存储的信息来进行数据库结构获取,相对还是比较简单的。脚本如下:
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
每种数据类型和用户定义数据类型的详细信息。
更加详细的内容就不多写了,网络上一搜就到处都是,自己备注一下,下次更新还能用得到。呵呵
相关文章推荐
- SQL脚本获取指定SQLServer数据库所有表及视图的字段列表及类型、长度
- Sql :获取数据库所有表及其字段名称、类型、长度 (也可以指定单张或若干张表的详细信息。。。)
- SQL获取指定数据表所有字段类型和精度脚本
- SQL获取指定数据表所有字段类型和精度脚本
- SQL获取指定数据表所有字段类型和精度脚本
- SQL Server 2008中获取数据库所有表及其字段名称、类型、长度的SQL
- SQL Server 中获取数据库所有表及其字段名称、类型、长度的SQL
- SQL 查询所有表名、字段名、类型、长度、存储过程、视图
- 转载Sql 获取数据库所有表及其字段名称,类型,长度
- SQL Server 2008中获取数据库所有表及其字段名称、类型、长度的SQL
- sql 获取指定数据表的所有字段名称的字符串
- SQL获取所有用户名,数据库名、所有表名、所有字段名及字段类型
- sql 查询表/视图字段、字段类型、字段长度
- 获取数据库所有表及其字段名称、类型、长度
- sql 获取指定数据表的所有字段名称的字符串
- SQL语句来获取一个表的所有列的信息,如,列名、类型、长度等
- SQL查询所有表,字段名,主键,类型,长度,小数位数,允许空,默认值,字段说明
- SQL语句来获取一个表的所有列的信息,如,列名、类型、长度等
- 获取sql所有存储过程脚本,获取sql表名,视图名,存储过程名,列名等
- 查询包含指定字段的所有表名的SQL脚本