最近因要分析一个其他项目数据库,由于没有数据字典十分难受。在网上查询到一个存储过程可以根据一个值查询到所在表的所在列。 其中存储过程中调用了2张系统表sysobjects syscolumns 其中syscolumns 包含了当前数据库中所有字段信息。
- name --字段名称
- xtype tinyInt, --该字段类型
sysobjects 包含了当前数据库中的对象
- name --字段名称(例如表名,存储过程名称等)
- xtype char(2) --字段类型(例如 U代表用户表,P代表存储过程)
例如,查询所有用户表
SELECT o.name, c.name,c.xtype,o.type FROM syscolumns c INNER JOIN sysobjects o ON c.id = o.id WHERE o.type = 'U'