加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sqlserver获取数据库表结构的存储过程

发布时间:2020-12-12 13:11:03 所属栏目:MsSql教程 来源:网络整理
导读:create PROCEDURE [dbo].[GetTableExplain] ??? @TABLENAME varchar(100) AS SELECT ???? 表名?????? = Case When A.colorder=1 Then D.name Else '--'+D.name End, ???? 表说明???? = Case When A.colorder=1 Then isnull(F.value,'') Else '' End, ???? 字

create PROCEDURE [dbo].[GetTableExplain]
??? @TABLENAME varchar(100)
AS
SELECT
???? 表名?????? = Case When A.colorder=1 Then D.name Else '--'+D.name End,
???? 表说明???? = Case When A.colorder=1 Then isnull(F.value,'') Else '' End,
???? 字段序号?? = A.colorder,
???? 字段名???? = A.name,
???? 字段说明?? = isnull(G.[value],''),
???? 标识?????? = 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,'PRECISION'),
???? 小数位数?? = isnull(COLUMNPROPERTY(A.id,'Scale'),0),
???? 允许空???? = Case When A.isnullable=1 Then '√'Else '' End,
???? 默认值???? = isnull(E.Text,'')
?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=@TABLENAME?? --如果只查询指定表,加上此条件 ?Order By ???? A.id,A.colorder

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读