分享一个关于查询sql Server table 结构的sql 语句。
T-sql 如下:
SELECT (case when a.colorder=1 then d.name else '' end) 表名,
a.colorder 字段序号,a.name 字段名,
(case when a.colorder=1 then isnull(f.value,'') else '' end) 表说明,
(case when ColUMNPROPERTY( a.ID,a.name,'IsIDentity')=1 then '1'else '0' end)标识,
(case when (SELECT count(*) FROM sysobjects
WHERE (name in (SELECT name FROM sysindexes
WHERE (ID = a.ID) AND (indID in
(SELECT indID FROM sysindexkeys
WHERE (ID = a.ID) AND (colID in
(SELECT colID FROM syscolumns WHERE (ID = a.ID) AND (name = a.name)))))))
AND (xtype = 'PK'))>0 then '1' else '0' end) 主键,b.name 类型,a.length 占用字节数,
ColUMNPROPERTY(a.ID,'PRECISION') as 长度,
isnull(ColUMNPROPERTY(a.ID,'Scale'),0) as 小数位数,(case when
a.isnullable=1 then '1'else '0' end) 允许空,
isnull(e.text,'') 默认值,isnull(g.[value],' ') AS [说明]
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 b.name is not null
WHERE d.name='DBA_Server' --如果只查询指定表,加上此条件,此案例为表DBA_Server
order by a.ID,a.colorder
查询出的结果如下:
总结
以上是内存溢出为你收集整理的SQL Server 关于 Table 字典数据的查询SQL全部内容,希望文章能够帮你解决SQL Server 关于 Table 字典数据的查询SQL所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)