对照表 Sys_Tab 就是了,可是我不知道怎么对所有的表实现自动中文列名,用存储过程行吗?如果行请指点,多谢!

解决方案 »

  1.   

    那要用,在查询时生成SQL语句的方法:比如:
    显示表:aadeclare @sql varchar(8000)
    set @sql='select '
    select @sql=@sql+'['+col_china_name+']=['+col_name+'],'
    from Sys_Tab where tab_name='aa'
    set @sql=left(@sql,len(@sql)-1)+' from aa'
    exec(@sql)
      

  2.   

    做成存储过程就是这样写:
    create proc p_show @tbname varchar(250)
    as
    declare @sql varchar(8000)
    set @sql='select '
    select @sql=@sql+'['+col_china_name+']=['+col_name+'],'
    from Sys_Tab where tab_name=@tbname
    set @sql=left(@sql,len(@sql)-1)+' from '+@tbname
    exec(@sql)
      

  3.   

    1: 在设计表时指定描述,或用sp_addextendedproperty加入字段描述
    2:用如下视图Create view fielddesc    
    as    
    select o.name as oname, c.name as cname,convert(varchar(30),p.value) as value,p.smallid as psmallid,t.name as tname 
    from syscolumns c  
    join systypes t on c.xtype = t.xtype
    join sysobjects o on o.id=c.id 
    left join    sysproperties p on p.smallid=c.colid and p.id=o.id    
    where o.xtype='U'