在sql語句中通過系統儲存過sp_addextendedproperty可為表字段新增上動態的說明(備註)下面是sql server幫助文件中對sp_addextendedproperty儲存過程的描述
語法sp_addextendedproperty
[ @name = ]
[ , [ @value = ]
[ , [ @level0type = ]
, [ @level0name = ]
[ , [ @level1type = ]
, [ @level1name = ]
[ , [ @level2type = ]
, [ @level2name = ] ]]
]]引數[ @name = ]
要新增的屬性名稱。property_name 的資料型別為 sysname,它不能是 null。名稱可能還包括空白或非字母數字字串和二進位制值。
[ @value = ]
將要與屬性相關聯的值。value 的資料型別為 sql_variant,帶有預設設定 null。value 的大小不能超過 7,500 位元組;否則 sql server 會產生錯誤。
[ @level0type = ]
使用者或使用者定義型別。level0_object_type 的資料型別為 varchar(128),其預設值為 null。有效的輸入是 user、type 和 null。
[ @level0name = ]
指定的 0 級物件型別的名稱。level0_object_name 的資料型別為 sysname,其預設值為 null。
[ @level1type = ]
1 級物件的型別。level1_object_type 的資料型別為 varchar(128),其預設值為 null。有效的輸入是 table、view、procedure、function、default、rule 和 null。
[ @level1name = ]
指定的 1 級物件型別的名稱。level1_object_name 的資料型別為 sysname,其預設值為 null。
[ @level2type = ]
2 級物件的型別。level2_object_type 的資料型別為 varchar(128),其預設值為 null。有效的輸入是 column、parameter、index、constraint、trigger 和 null。
[ @level2name = ]
指定的 2 級物件型別的名稱。level2_object_name 的資料型別為 sysname,其預設值為 null。
返回**值
0(成功)或 1(失敗)
注釋系統物件不允許有擴充套件屬性。
物件是按級別區分的,0 級為最高,2 級為最低。當使用者新增、更新或刪除擴充套件屬性時,必須指定所有更高階別的物件。例如,如果使用者要向 1 級物件新增擴充套件屬性,就必須指定所有 0 級資訊。如果使用者要向 2 級物件新增擴充套件屬性,則必須提供關於 0 級和 1 級的所有資訊。
在每個級別上,物件型別和物件名可唯一地標識物件。如果指定了乙個對中的任一方,則必須指定另一方。
給定了有效 property_name 和 value,如果沒有任何物件型別和名稱,則屬性屬於當前資料庫。如果指定物件型別和名稱,則還必須指定父物件和型別。否則,sql server 會產生錯誤。
許可權db_owner 和 db_ddladmin 固定資料庫角色的成員可以將擴充套件屬性新增到任何物件中。使用者可以為他們所擁有的物件新增擴充套件屬性。然而,只有 db_owner 可以將屬性新增到使用者名稱中。
下面是我在使用過程中對錶clipinfo的字段通過sp_addextendedproperty儲存過程加的說明,
alter table [dbo].[clipinfo] add constraint [pk_clipinfo] primary key clustered ([clipnum])
gosp_addextendedproperty n'ms_description', n'卡號', 'user', n'dbo', 'table', n'clipinfo', 'column', n'clipnum'
gosp_addextendedproperty n'ms_description', n'密碼', 'user', n'dbo', 'table', n'clipinfo', 'column', n'passd'
gosp_addextendedproperty n'ms_description', n'所屬地', 'user', n'dbo', 'table', n'clipinfo', 'column', n'cliparea'
gosp_addextendedproperty n'ms_description', n'建立時間', 'user', n'dbo', 'table', n'clipinfo', 'column', n'createtime'
gosp_addextendedproperty n'ms_description', n'修改時間', 'user', n'dbo', 'table', n'clipinfo', 'column', n'updatetime'
gosp_addextendedproperty n'ms_description', n'狀態', 'user', n'dbo', 'table', n'clipinfo', 'column', n'clipstate'
goselect * from sys.extended_properties a
where a.major_id=object_id('ta')
select * from sys.extended_properties
select * from syscolumns where id=object_id('ta')
列出表"t"中所有列的所有擴充套件屬性:
select *
from ::fn_listextendedproperty(null,'user','dbo','table','ta','column',default)
列出表"t"中列col1的描述屬性:
select value
from ::fn_listextendedproperty('ms_description','user','dbo','table','ta','column','id')
新增表"t"中列col1的描述屬性:
exec sp_addextendedproperty 'ms_description','列1','user',dbo,'table','t','column',col1
刪除表"t"中列col1的描述屬性:
exec sp_dropextendedproperty 'ms_description','user',dbo,'table','t','column',col1
更新表"t"中列col1的描述屬性:
exec sp_updateextendedproperty 'ms_description','欄位1','user',dbo,'table','t','column',col1
--表及字段描述資訊處理示例
--建立表
create table 表(a1 varchar(10),a2 char(2))
--為表新增描述資訊
execute sp_addextendedproperty n'ms_description', '人員資訊表', n'user', n'dbo', n'table', n'表', null, null
--為字段a1新增描述資訊
execute sp_addextendedproperty n'ms_description', '姓名', n'user', n'dbo', n'table', n'表', n'column', n'a1'
--為字段a2新增描述資訊
execute sp_addextendedproperty n'ms_description', '性別', n'user', n'dbo', n'table', n'表', n'column', n'a2'
--更新表中列a1的描述屬性:
exec sp_updateextendedproperty 'ms_description','欄位1','user',dbo,'table','表','column',a1
--刪除表中列a1的描述屬性:
exec sp_dropextendedproperty 'ms_description','user',dbo,'table','表','column',a1
--刪除測試
drop table 表
MS SQL 給表和字段新增說明
給表和字段新增中文說明,方便日後給自己和其他維護人員快速了解表結構。新增說明 execute sys sp updateextendedproperty name n ms description value n 主料用量複核 level0type n schema level0name n dbo...
SQL語句新增說明
建立表 create table 表 name varchar 10 age int 為表新增描述資訊 execute sp addextendedproperty n ms description 表描述 n user n dbo n table n 表 null,null 為字段name新增描述...
SQL Oracle給表新增字段說明
oracle mysql sqlserver建立表和給表和字段加注釋 一 oracle 建立表 create table test id varchar2 200 primary key not null,sort number,name varchar 200 欄位加注釋 comment on c...