批量把自己系统的数据字典写到数据库字段的说明

  我们公司的系统会把字段的中文名称用字典表单独记录起来。所以在表设计的时候,通常都没有往说明写注释,一个个写也不是很方便。但是如果使用李天平前辈的代码生成器生成model层的时候,默认是取数据库字段的说明作为注释的。所以后期开发的时候,又要写上说明,还是比较麻烦。所以想找个方法把我们系统里面的中文名称写到字段的说明中去。

  字段的说明主要保存在这个表中:extended_properties,这个表的说明请自己查找MSDN的说明。刚开始以为看懂表结构就可以批量插入,刚插入,结果系统报错了,这个表是受数据系统保护的。但是提供了一个存储过程给我们调用:sp_addextendedproperty。有了这个接口,我们就可以使用视图和游标来批量插入了。

新建了一个视图:

如图分别为表名,字段名,字段说明。这个存储过程用来插入字段说明的话,就主要需要我们提供这三个变量就可以了。

然后写一个游标,游标比较简单不多解释。

declare @TableName varchar(40)
declare @ColumnName varchar(100)
declare @Description varchar(400)

declare updDescription scroll cursor
for
select TableName,ColumnName,Description from vUpdDescription where 1=1 
for update

open updDescription


fetch from updDescription into @TableName,@ColumnName,@Description
while @@fetch_status = 0
    begin
        if @Description is not null
        print @Description
		
        EXEC sp_addextendedproperty N'MS_Description', @Description, 'SCHEMA', N'dbo', 'TABLE', @TableName, 'COLUMN',@ColumnName

        fetch from updDescription into @TableName,@ColumnName,@Description
    end
close updDescription
deallocate updDescription

如果后期才加入的话,也可以考虑先用Excel整理好,再批量更新。在数据库里面操作实在太麻烦了。

posted @ 2011-04-08 19:26  nick_lsf  阅读(817)  评论(0编辑  收藏  举报