【SQL Server學習筆記】表和列增加註釋
阿新 • • 發佈:2019-01-01
給表和列增加註釋,通過增加擴充套件屬性來實現
程式碼如下:
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'