以ms sql server 14  v17为例。

如下表dbo.Q中有一个字段''

MS SQL为字段添加说明_sql server

 

 

首先在数据库的系统存储过程列表中:

MS SQL为字段添加说明_sql server_02

 

找到sys.sp_addextendedproperty,使用这个为字段添加一个说明。

MS SQL为字段添加说明_sql server_03

 

MS SQL为字段添加说明_sql server_04MS SQL为字段添加说明_sql server_05

EXECUTE [sys].[sp_addextendedproperty]@name=N'MS_Description', @value=N'数量' ,@level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'Q',@level2type=N'COLUMN',@level2name=N'qty'

View Code

 

执行结果:

MS SQL为字段添加说明_sql server_06

 

如果你不清楚MS_Description是否存在时,再次执行上面的存储过程,你会得到一个error提示:

MS SQL为字段添加说明_sql server_07

 

这个时候,你可以在执行前,先来判断一下是否存在:

MS SQL为字段添加说明_sql server_08

 

MS SQL为字段添加说明_sql server_04MS SQL为字段添加说明_sql server_05

IF EXISTS (SELECT TOP 1 1 FROM fn_listextendedproperty('MS_Description', 'SCHEMA', N'dbo', 'TABLE', N'Q', 'COLUMN', N'qty'))    PRINT 'exists'ELSE
    PRINT 'not exists'

View Code

 

好的,如果我们知道说明属性已经存在,但内容不正确,我们想要修改它:

此时,你可以DROP之后,再添加。

MS SQL为字段添加说明_sql server_11

MS SQL为字段添加说明_sql server_04MS SQL为字段添加说明_sql server_05

 EXECUTE [sys].[sp_dropextendedproperty] 'MS_Description',                                         'SCHEMA', N'dbo',                                         'TABLE', N'Q',                                         'COLUMN', N'qty'

View Code

 

或者,你不想这样麻烦,你可以直接使用update来处理。

MS SQL为字段添加说明_sql server_14

 

MS SQL为字段添加说明_sql server_04MS SQL为字段添加说明_sql server_05

EXECUTE [sys].[sp_updateextendedproperty] @name=N'MS_Description', @value=N'库存数量' ,@level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'Q',@level2type=N'COLUMN',@level2name=N'qty'

View Code

 

再次去看看修改后的字段说明内容

MS SQL为字段添加说明_sql server_17

 

到最后,想说的,可以写成一个动态的SQL包装成一个自定义存储过程。

这样子,我们不管是在添加,或是更新时,直接传入参数即可。