sqlserver 查看表注释

本文共有3040个字,关键词:

问题:sqlserver如何查看表注释?

方法:

SELECT
A.name AS 表名,
B.name AS 字段名,
C.value AS 字段说明
FROM sys.tables A
INNER JOIN sys.columns B ON B.object_id = A.object_id
LEFT JOIN sys.extended_properties C ON C.major_id = B.object_id AND C.minor_id = B.column_id
WHERE A.name = '表名'

查询所有字段,可查视图

SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='表名/视图名'

SELECT
    COLUMN_NAME,
    DATA_TYPE,
    CHARACTER_MAXIMUM_LENGTH,
    CHARACTER_OCTET_LENGTH
FROM
    information_schema.COLUMNS
WHERE
    TABLE_NAME = '表名/视图名'

查看表各字段类型及注释

SELECT
    A.COLUMN_NAME,
    A.DATA_TYPE,
    C.value
FROM
    information_schema.COLUMNS A
LEFT JOIN sys.extended_properties C ON A.ORDINAL_POSITION = C.minor_id
WHERE
    A.TABLE_NAME = 'user'

查看表的注释

select 
a.name AS 表名,
CONVERT(NVARCHAR(100),isnull(g.[value],'-')) AS 说明
from
sys.tables a left join sys.extended_properties g
on (a.object_id = g.major_id AND g.minor_id = 0)
WHERE a.name = 'User'

格式化输出表所有信息

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 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, a.name, 'PRECISION'), 
  小数位数 = isnull(
    COLUMNPROPERTY(a.id, a.name, '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.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 = 'user' --如果只查询指定表,加上此where条件,tablename是要查询的表名;去除where条件查询所有的表信息
order by 
  a.id, 
  a.colorder

参考:

https://blog.csdn.net/qq_38425904/article/details/130360975
版权声明:本文为作者原创,如需转载须联系作者本人同意,未经作者本人同意不得擅自转载。
添加新评论
暂无评论