以ms sql server 14 v17为例。
如下表dbo.Q中有一个字段""
首先在数据库的系统存储过程列表中:
找到sys.sp_addextendedproperty,使用这个为字段添加一个说明。
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_Description是否存在时,再次执行上面的存储过程,你会得到一个error提示:
这个时候,你可以在执行前,先来判断一下是否存在:
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之后,再添加。
EXECUTE [sys].[sp_dropextendedproperty] "MS_Description",
"SCHEMA", N"dbo",
"TABLE", N"Q",
"COLUMN", N"qty"
View Code
或者,你不想这样麻烦,你可以直接使用update来处理。
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
再次去看看修改后的字段说明内容
到最后,想说的,可以写成一个动态的SQL包装成一个自定义存储过程。
这样子,我们不管是在添加,或是更新时,直接传入参数即可。