http://space.itpub.net/16436858/spacelist-blog-itemtypeid-74583
以前用那个SQL语句来生成那个sqlServer库的数据字典,在sql2000下用的挺好的,最近装上了那个sql2008来研究,
突然发现不能在2008下用了,查了查资料,发现2008下有一些改动
贴上来留个记号
sqlServer2008/2005 生成数据字典语句
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 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,'PRECISION'), 小数位数=isnull(ColUMNPROPERTY(a.ID,'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.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 left join sys.extended_propertIEs f on d.ID=f.major_ID and f.minor_ID =0 --where d.name='要查询的表' --如果只查询指定表,加上此条件 order by a.ID,a.colorder
以前的sql2000下的语句
就改动了个syspropertIEs
Co
SELECT
表名=case when a.colorder=1 then d.name else '' end,
表说明=case when a.colorder=1 then isnull(f.value,
字段序号=a.colorder,
字段名=a.name,
标识=case when ColUMNPROPERTY( a.ID,
主键=case when exists(SELECT 1 FROM sysobjects where xtype='PK' 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,
小数位数=isnull(ColUMNPROPERTY(a.ID,
允许空=case when a.isnullable=1 then '√'else '' end,
默认值=isnull(e.text,
字段说明=isnull(g.[value],'')
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 syspropertIEs g on a.ID=g.ID and a.colID=g.smallID
left join syspropertIEs f on d.ID=f.ID and f.smallID=0
--where d.name='要查询的表' --如果只查询指定表,加上此条件
order by a.ID,a.colorder
总结以上是内存溢出为你收集整理的SQLServer2008/2005 生成数据字典SQL语句全部内容,希望文章能够帮你解决SQLServer2008/2005 生成数据字典SQL语句所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)