如何得到数据库中所有表名 表字段及字段中文描述 |
本文标签:数据库,表名 在网上查了部分资料但是发现粘上去的代码都存在问题,无奈只好自己修改了一下,代码如下: 如下代码能正常运行,都是网上查找资料最后拼凑总结出来的 。条件就自己加吧 。网上好像也有不少类型的东西,这里留着以备不时只需! 复制代码 代码如下: SELECT (case when a.colorder=1 then d.name else end) N表名, a.colorder N字段序号, a.name N字段名, (case when COLUMNPROPERTY( a.id,a.name,IsIdentity)=1 then √else end) N标识, (case when (SELECT count(*) FROM sysobjects WHERE (name in (SELECT name FROM sysindexes WHERE (id = a.id) AND (indid in (SELECT indid FROM sysindexkeys WHERE (id = a.id) AND (colid in (SELECT colid FROM syscolumns WHERE (id = a.id) AND (name = a.name))))))) AND (xtype = PK))>0 then √ else end) N主键, b.name N类型, a.length N占用字节数, COLUMNPROPERTY(a.id,a.name,PRECISION) as N长度, isnull(COLUMNPROPERTY(a.id,a.name,Scale),0) as N小数位数, (case when a.isnullable=1 then √else end) N允许空, isnull(e.text,) N默认值, isnull(g.[value],) AS N字段说明 --into ##tx FROM syscolumns a left join systypes b on a.xtype=b.xusertype inner join sysobjects d on a.id=d.id and d.xtype=U and d.name<>dtproperties left join syscomments e on a.cdefault=e.id left join sys.extended_properties g on a.id=g.major_id AND a.colid = g.minor_id order by object_name(a.id),a.colorder sysproperties表的详解: 1、表名:sqlserver的注释表,每个数据库都有,包括表和字段的注释,表或者列的注释都会存储,没有注释不存储 。 2、字段: id:表的ID或者是列的ID smallid:列的顺序,排序用 type:3 表,4字段,可能还有约束什么的,还没有测试出 name:统一的MS_Description value:描述 如需修改(转载部分) 如果需要更新 此表的 内容 需要 开启 [允许对系统目录直接进行修改] ,否则 改不了 系统表 ![]() 如果 不开启 此 功能 ,那么也可以 使用 存储过程[sp_addextendedproperty] 来 添加\更新\删除 表和字段的描述 用法如下 --创建表 Create Table 表(a1 varchar(10),a2 char(2)) --为表 添加 描述信息 : 第二个参数为 [描述] 第六个参数为 [表名] EXECUTE sp_addextendedproperty NMS_Description, 人员信息表, Nuser, Ndbo, Ntable, N表, NULL, NULL --为表 更新 描述信息 : 第二个参数为 [描述] 第六个参数为 [表名] EXECUTE sp_updateextendedproperty MS_Description,Nadsfasfdas, Nuser, Ndbo, Ntable, N表, NULL, NULL --为表 删除 描述信息 : 第五个参数为 [表名] EXEC sp_dropextendedproperty MS_Description,Nuser, Ndbo, Ntable, N表, NULL, NULL --字段的 添加 更新 删除 方法 --为 字段a1 添加 描述信息: 第二个参数为 [描述] 第六个参数为 [表名] 第八个参数为 [字段名称] EXECUTE sp_addextendedproperty NMS_Description, 姓名, Nuser, Ndbo, Ntable, N表, Ncolumn, Na1 --更新 字段 a1 的描述属性:第二个参数为 [描述] 第六个参数为 [表名] 第八个参数为 [字段名称] EXEC sp_updateextendedproperty MS_Description,字段1dd,user,dbo,table,表,column,Na1 --删除 字段 a1 的描述属性:第五个参数为 [表名] 第七个参数为 [字段名称] EXEC sp_dropextendedproperty MS_Description,user,dbo,table,表,column,a1 --删除测试 Drop Table 表 |