本来想生成具有model格式的类,但是无法解决回车换行的问题,所以放到3个字段里的;如果有知道的博友,请指教:
t_jsd是表名
select ‘[Display(Name="‘+ cast(tab.字段说明 as varchar) +‘")]‘, case when (tab.类型=‘varchar‘ or tab.类型=‘nvarchar‘ or tab.类型=‘char‘) then ‘[StringLength(‘+cast( tab.占用字节数 as varchar) +‘, ErrorMessage = "{0}长度不能超过{1}")]‘ else ‘‘ end, ‘public ‘+(case when tab.类型=‘varchar‘ then ‘string‘ when tab.类型=‘nvarchar‘ then ‘string‘ when tab.类型=‘char‘ then ‘string‘ when tab.类型=‘datetime‘ then ‘DateTime‘ else tab.类型 end )+‘ ‘+tab.字段名+‘ {get;set;}‘ from ( select 表名 = case when a.colorder=1 then d.name else ‘‘ end, 表说明 = case when a.colorder=1 then isnull(f.value,‘‘) else ‘‘ end, 字段序号 = a.colorder, 字段名 = a.name, 标识 = case when columnproperty( a.id,a.name,‘isidentity‘)=1 then ‘√‘else ‘‘ end, 主键 = case when exists(select 1 from sysobjects where xtype=‘pk‘ and parent_obj=a.id and name in ( select name from sysindexes where indid in( select indid from sysindexkeys where id = a.id and colid=a.colid))) then ‘√‘ else ‘‘ end, 类型 = b.name, 占用字节数 = a.length, 长度 = columnproperty(a.id,a.name,‘precision‘), 小数位数 = isnull(columnproperty(a.id,a.name,‘scale‘),0), 允许空 = case when a.isnullable=1 then ‘√‘else ‘‘ end, 默认值 = isnull(e.text,‘‘), 字段说明 = isnull(g.[value],‘‘) from syscolumns a left join systypes b on a.xusertype=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 left join sys.extended_properties f on d.id=f.major_id and f.minor_id=0 where d.name=‘t_jsd‘ ) tab