1. 程式人生 > >【SQL Server學習筆記】表和列增加註釋

【SQL Server學習筆記】表和列增加註釋

給表和列增加註釋,通過增加擴充套件屬性來實現

程式碼如下:

create table ttt
(id int not null primary key,
 v  varchar(100) )
 
 
--給表添加註釋
--注意後面的各層型別和名稱,指出了要給什麼增加擴充套件屬性 
exec sp_addextendedproperty
	@name = 'ttt_desc1',   --擴充套件屬性的名稱
	@value = '表中的主鍵',  --給表新增的註釋
	
	@level0type ='schema', --第0層型別是架構
	@level0name = 'dbo',   --架構名稱
	
	@level1type = 'table', --第1層型別是表
	@level1name = 'ttt'
	

--給列添加註釋	
exec sp_addextendedproperty
	@name = 'ttt_desc2',   --擴充套件屬性的名稱
	@value = '表中的主鍵',  --給列新增的註釋
	
	@level0type ='schema', --第0層型別是架構
	@level0name = 'dbo',   --架構名稱
	
	@level1type = 'table', --第1層型別是表
	@level1name = 'ttt',   --表名稱
	
	@level2type = 'column',--第2層是列	 
	@level2name = 'id'     --列名稱
	
	
--更新列的註釋
exec sp_updateextendedproperty
	@name = 'ttt_desc2',                   --擴充套件屬性的名稱
	@value = '表中的主鍵,唯一標示一行資料',  --更新列新增的註釋
	
	@level0type ='schema', --第0層型別是架構
	@level0name = 'dbo',   --架構名稱
	
	@level1type = 'table', --第1層型別是表
	@level1name = 'ttt',   --表名稱
	
	@level2type = 'column',--第2層是列	 
	@level2name = 'id'     --列名稱	
	

--刪除列的註釋	
EXEC SP_DROPextendedproperty
	@name ='ttt_desc2',
	
	@level0type ='schema', --第0層型別是架構
	@level0name = 'dbo',   --架構名稱
	
	@level1type = 'table', --第1層型別是表
	@level1name = 'ttt',   --表名稱
	
	@level2type = 'column',--第2層是列	 
	@level2name = 'id'     --列名稱	

可以在試圖中查詢這些擴充套件資訊:

--SQL Server 2000
select *
from sysproperties



--SQL Server 2005
select *
from sys.extended_properties

進一步擴充套件,只查詢表的屬性資訊:

select t.object_id,t.name,p.value
from sys.tables t
inner join sys.extended_properties p
       on t.object_id = p.major_id
where minor_id = 0
and t.type= 'U'

表的註釋以及列的註釋:

select t.object_id,
       case when isnull(p.minor_id,0)=0 then '表的註釋' else '列的註釋' end as comment,
       case when isnull(p.minor_id,0)=0 then c.name else t.name end as table_or_column,
       p.value
from sys.tables t
inner join sys.extended_properties p
       on t.object_id = p.major_id
left join sys.columns c
       on c.column_id = p.minor_id and
          c.object_id = t.object_id 
where  t.type= 'U'