获取表中字段信息(主外键,字段名,数据类型,字段长度,列说明)

select
(case when PKeyCol.COLUMN_NAME is null then '' else 'PK' end) +
(case when KeyCol2.COLUMN_NAME is null then ''
      when NOT PKeyCol.COLUMN_NAME is null then ',FK' else 'FK' end) as [主/外键],
col.COLUMN_NAME as 字段名称,
DATA_TYPE as DataType,
(case when CHARACTER_MAXIMUM_LENGTH is null then '' else CAST(CHARACTER_MAXIMUM_LENGTH as varchar(50)) end) as 字段长度,
--(case when coldesc.value is null then '' else coldesc.value end) AS 字段说明,*
ISNULL (CAST(coldesc.[value] AS nvarchar(50)) , '') AS 字段说明
from INFORMATION_SCHEMA.COLUMNS as col 
LEFT OUTER JOIN
(select COLUMN_NAME,TABLE_NAME FROM
INFORMATION_SCHEMA.KEY_COLUMN_USAGE KeyCol
LEFT OUTER JOIN INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS RefCol ON
KeyCol.CONSTRAINT_CATALOG=RefCol.CONSTRAINT_CATALOG AND
KeyCol.CONSTRAINT_NAME=RefCol.CONSTRAINT_NAME
WHERE RefCol.CONSTRAINT_NAME IS NULL) PKeyCol
ON PKeyCol.COLUMN_NAME=Col.COLUMN_NAME AND PKeyCol.TABLE_NAME=Col.TABLE_NAME
LEFT OUTER JOIN
(INFORMATION_SCHEMA.KEY_COLUMN_USAGE KeyCol2
INNER JOIN INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS RefCol2 ON
KeyCol2.CONSTRAINT_CATALOG=RefCol2.CONSTRAINT_CATALOG AND
KeyCol2.CONSTRAINT_NAME=RefCol2.CONSTRAINT_NAME)
ON KeyCol2.COLUMN_NAME=Col.COLUMN_NAME AND KeyCol2.TABLE_NAME=Col.TABLE_NAME
LEFT OUTER JOIN ::fn_listextendedproperty (NULL, 'user', 'dbo', 'table', "+tableName+", 'column', default) as coldesc
ON col.COLUMN_NAME = coldesc.objname COLLATE Chinese_PRC_CI_AS
where col.TABLE_NAME="+tableName+"

将"+tableName+"换成你要查询的表名就可以了 

获取表中所有信息,没有字段说明

exec sp_columns " + tableName + "

 

获取表中主键的字段 

select COLUMN_NAME AS KeyName FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE KeyCol LEFT OUTER JOIN INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS RefCol ON KeyCol.CONSTRAINT_CATALOG=RefCol.CONSTRAINT_CATALOG AND KeyCol.CONSTRAINT_NAME=RefCol.CONSTRAINT_NAME WHERE RefCol.CONSTRAINT_NAME IS NULL AND KeyCol.TABLE_NAME="+tableName+"

 

获取表中字段的信息(列名称,数据类型,长度,字段说明)

                "select col.COLUMN_NAME as FieldName,DATA_TYPE as DataType,(case when CHARACTER_MAXIMUM_LENGTH is null then '' else CAST(CHARACTER_MAXIMUM_LENGTH as varchar(50)) end) as FieldLength,ISNULL (CAST(coldesc.[value] AS nvarchar(50)) , '') AS FieldExplain from INFORMATION_SCHEMA.COLUMNS as col  LEFT OUTER JOIN ::fn_listextendedproperty (NULL, 'user', 'dbo', 'table', " +
                tableName +
                ", 'column', default) as coldesc ON col.COLUMN_NAME = coldesc.objname COLLATE Chinese_PRC_CI_AS where col.TABLE_NAME=" +
                tableName + ""

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值