SQL SERVER添加表注釋、字段注釋


--取表注釋
SELECT
A.name AS table_name, B.name AS column_name, C.value AS column_description 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 = 't_dept';

--取視圖注釋

SELECT A.name AS table_name, B.name AS column_name, C.value AS column_description
FROM sys.views 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 = 'v_name';

select * from sys.extended_properties
where major_id=66815300

--為字段添加注釋
--Eg. execute sp_addextendedproperty 'MS_Description','字段備注信息','user','dbo','table','字段所屬的表名','column','添加注釋的字段名';
execute sp_addextendedproperty 'MS_Description','add by liyc. 診斷類別碼','user','dbo','table','DiagRecord','column','DiagTypeCode';
 
--修改字段注釋
execute sp_updateextendedproperty 'MS_Description','add by liyc.','user','dbo','table','DiagRecord','column','DiagTypeCode';
 
--刪除字段注釋
execute sp_dropextendedproperty 'MS_Description','user','dbo','table','DiagRecord','column','DiagTypeCode';
 
-- 添加表注釋
execute sp_addextendedproperty 'MS_Description','診斷記錄文件','user','dbo','table','DiagRecord',null,null;
 
-- 修改表注釋
execute sp_updateextendedproperty 'MS_Description','診斷記錄文件1','user','dbo','table','DiagRecord',null,null;
 
-- 刪除表注釋
execute sp_dropextendedproperty 'MS_Description','user','dbo','table','DiagRecord',null,null;

 

查詢文檔

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   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='TableName'         --如果只查詢指定表,加上此條件
order   by   a.id,a.colorder

 

--sql server 查詢所有表名及注釋
SELECT DISTINCT
    d.name,
    f.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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM