为你的数据库做好数据字典

        数据库设计好以后,维护就是只要的问题,经常要查询些数据,查看当初定义好的字段是何意思。 用SP_Help去查看?又慢又要回想半天设计时的初衷。起始,只要设计时工作做足,就可以很方便在数据库的查阅当初的设计。 首先,我们在创建数据表的时候,就给表和每个字段加上中文注释。如下:

  1. CREATE TABLE Employee ( 
  2.     EmpID int NOT NULL,    -- 员工编号 
  3.     EmpName varchar(32),    -- 员工姓名 
  4.     EmpPhone varchar(32),    -- 员工电话 
  5.     EmpState int,    -- 员工状态[1:在职2:离职] 
  6. )
  7. ;
  8. ALTER TABLE Employee ADD CONSTRAINT PK_Employee 
  9.     PRIMARY KEY CLUSTERED (EmpID)
  10. ;
  11. EXEC sp_addextendedproperty 'MS_Description''员工表''User', dbo, 'table', Employee
  12. ;
  13. EXEC sp_addextendedproperty 'MS_Description''员工编号''User', dbo, 'table', Employee, 'column', EmpID
  14. ;
  15. EXEC sp_addextendedproperty 'MS_Description''员工姓名''User', dbo, 'table', Employee, 'column', EmpName
  16. ;
  17. EXEC sp_addextendedproperty 'MS_Description''员工电话''User', dbo, 'table', Employee, 'column', EmpPhone
  18. ;
  19. EXEC sp_addextendedproperty 'MS_Description''员工状态[1:在职,2:离职]''User', dbo, 'table', Employee, 'column', EmpState
  20. ;

然后,再创建一个存储过程,如下:

  1. Create procedure DataDictionary_GetbyTableName
  2.     @TableName varchar(32)
  3. as
  4. select b.[name] Tablename ,Isnull(c.[name],'Table') ColName ,convert(varchar(256),a.[value]) Description 
  5. from sys.extended_properties a inner join sysobjects b on b.id = a.major_id
  6.  left join syscolumns c on a.minor_id = c.colid and a.major_id = c.id
  7. where b.[name] = @TableName

最后,需要查看某张表的时候,执行一下该存储过程+表名。就可以了。如下:

  1. DataDictionary_GetbyTableName employee

得到的就是:

 

有没有感觉方便一点。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值