sql使用数据库系统函数生成数据字典

declare @tablename nvarchar(50)='appUser'

--表描述

--SELECT tbs.name 表名,ds.value 描述

--FROM sys.extended_properties ds

--LEFT JOIN sysobjects tbs ON ds.major_id=tbs.id

--WHERE ds.minor_id=0 and

--tbs.name=@tablename;--表名

 

--快速查看表结构

SELECT CASE WHEN col.colorder = 1 THEN obj.name

ELSE ''

END AS 表名,

col.colorder AS 序号 ,

col.name AS 列名 ,

ISNULL(ep.[value], '') AS 列说明 ,

t.name AS 数据类型 ,

col.length AS 长度 ,

ISNULL(COLUMNPROPERTY(col.id, col.name, 'Scale'), 0) AS 小数位数 ,

CASE WHEN COLUMNPROPERTY(col.id, col.name, 'IsIdentity') = 1 THEN '√'

ELSE ''

END AS 标识 ,

CASE WHEN EXISTS ( SELECT 1

FROM dbo.sysindexes si

INNER JOIN dbo.sysindexkeys sik ON si.id = sik.id

AND si.indid = sik.indid

INNER JOIN dbo.syscolumns sc ON sc.id = sik.id

AND sc.colid = sik.colid

INNER JOIN dbo.sysobjects so ON so.name = si.name

AND so.xtype = 'PK'

WHERE sc.id = col.id

AND sc.colid = col.colid ) THEN '√'

ELSE ''

END AS 主键 ,

CASE WHEN col.isnullable = 1 THEN '√'

ELSE ''

END AS 允许空 ,

ISNULL(comm.text, '') AS 默认值

FROM dbo.syscolumns col

LEFT JOIN dbo.systypes t ON col.xtype = t.xusertype

inner JOIN dbo.sysobjects obj ON col.id = obj.id

AND obj.xtype = 'U'

AND obj.status >= 0

LEFT JOIN dbo.syscomments comm ON col.cdefault = comm.id

LEFT JOIN sys.extended_properties ep ON col.id = ep.major_id

AND col.colid = ep.minor_id

AND ep.name = 'MS_Description'

LEFT JOIN sys.extended_properties epTwo ON obj.id = epTwo.major_id

AND epTwo.minor_id = 0

AND epTwo.name = 'MS_Description'

--WHERE obj.name !='sysdiagrams'--= @tablename--表名

ORDER BY obj.name,col.colorder ;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值