复制
收藏
提问
全网
sqlserver 判断字段注释是否存在
4个月前
理解问题sqlserver 判断字段注释是否存在
已完成理解「sqlserver 判断字段注释是否存在」
展开阅读网页
在 SQL Server 中,判断字段注释是否存在可以通过查询系统视图 sys.extended_properties
来实现。这个视图存储了数据库中所有对象的扩展属性,包括字段的注释。以下是一些基本的步骤和示例,用于判断字段注释是否存在:
-
查询字段注释:首先,可以通过连接
sys.columns
和sys.extended_properties
来查询特定字段的注释。SELECT a.name AS table_name, b.name AS column_name, ep.value AS column_description FROM sys.tables a INNER JOIN sys.columns b ON a.object_id = b.object_id LEFT JOIN sys.extended_properties ep ON b.object_id = ep.major_id AND b.column_id = ep.minor_id WHERE a.name = 'your_table_name' -- 替换为你的表名 AND ep.name = 'MS_Description'; -- 'MS_Description' 是 SQL Server 默认的字段注释名称
-
判断字段注释是否存在:如果查询结果返回了字段注释,那么注释存在;如果没有返回结果,则注释不存在。
-
新增或修改字段注释:如果字段注释不存在,可以使用
sp_addextendedproperty
存储过程来添加注释,如果已存在则使用sp_updateextendedproperty
来更新。IF NOT EXISTS ( SELECT * FROM sys.extended_properties WHERE major_id = OBJECT_ID('your_table_name') AND minor_id = (SELECT column_id FROM sys.columns WHERE name = 'your_column_name' AND object_id = OBJECT_ID('your_table_name')) AND name = 'MS_Description' ) EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'your_column_description', @level0type = N'SCHEMA', @level0name = dbo, @level1type = N'TABLE', @level1name = 'your_table_name', @level2type = N'COLUMN', @level2name = 'your_column_name'; ELSE EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'your_new_column_description', @level0type = N'SCHEMA', @level0name = dbo, @level1type = N'TABLE', @level1name = 'your_table_name', @level2type = N'COLUMN', @level2name = 'your_column_name';
请注意,上述示例中的 'your_table_name'
, 'your_column_name'
, 和 'your_column_description'
需要根据实际情况替换为具体的表名、列名和注释内容。158
更专业一些
转笔记
专业
sqlserver 判断字段注释是否存在不在提醒