MSSQL 給字段新增說明

2022-02-15 13:10:32 字數 4223 閱讀 2079

在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...