sql 添加字段备注和查看已添加表的备注

SQL元数据管理与扩展属性使用详解
本文深入探讨了SQL Server中元数据管理的重要工具sp_addextendedproperty,包括其语法、常见用法及如何通过SQL查询获取元数据信息。同时,介绍了如何利用此功能进行数据库对象的详细注释管理,提升团队协作效率与数据库维护质量。
- - - - - - - - - -- - - - - - - -- -- - - - - - - - - - - - -  - - - - - - - - -  -- - - - - ---- -  - -- --- -
sp_addextendedproperty
    [ @name = ] { 'property_name' }
    [ , [ @value = ] { 'value' } 
        [ , [ @level0type = ] { 'level0_object_type' } 
                    , [ @level0name = ] { 'level0_object_name' } 
                [ , [ @level1type = ] { 'level1_object_type' } 
                                    , [ @level1name = ] { 'level1_object_name' } 
                        [ , [ @level2type = ] { 'level2_object_type' } 
                                                    , [ @level2name = ] { 'level2_object_name' } 
                        ] 
                ]
        ] 
    ] 






语法:
EXECUTE sp_addextendedproperty N'MS_Description', N'字段注释', N'user', N'dbo', N'table', N'表名', N'column', N'字段名'

- - - - - - - - - -- - - - - - - -- -- - - - - - - - - - - - -  - - - - - - - - -  -- - - - - ---- -  - -- --- -



- - - - - - - - - -- - - - - - - -- -- - - - - - - - - - - - -  - - - - - - - - -  -- - - - - ---- -  - -- --- -





SELECT
A.name AS table_name,
B.name AS column_name,
C.value AS column_description
FROM sys.tables A
INNER JOIN sys.columns B ON B.object_id = A.object_id
LEFT JOIN sys.extended_properties C ON C.major_id = B.object_id AND C.minor_id = B.column_id
WHERE A.name = '表名'

- - - - - - - - - -- - - - - - - -- -- - - - - - - - - - - - -  - - - - - - - - -  -- - - - - ---- -  - -- --- -

<think>我们正在讨论的是金仓数据库(KingbaseES)中添加字段备注(注释)的方法。 根据引用[2]中的内容,我们可以看到在金仓数据库中给字段备注的语法是: comment on column 名.字段名 is '备注内容'; 因此,用户询问的“kingbase 添加字段备注”的完整操作如下: 步骤: 1. 连接到目标数据库(使用ksql或其他客户端工具) 2. 执行COMMENT语句为指定字段添加注释 示例: 假设我们有一个名为`sys_notice`,其中有一个字段`scope`,我们想为这个字段添加备注“发布范围”,则执行: comment on column sys_notice.scope is '发布范围'; 注意:字段名的大小写处理。如果名或字段名是大小写敏感的(即创建时使用了双引号),那么在COMMENT语句中也需要使用双引号引起来。例如: comment on column "MyTable"."MyColumn" is '备注内容'; 另外,引用[2]中也提到了查询字段备注的方法: select comments from user_col_comments where table_name='sys_notice' and column_name='scope'; 这里需要注意: - 在查询时,字段名在数据字典中默认是大写的,所以如果创建时没有使用双引号指定大小写,那么查询时字段名需要大写。 - 如果创建时使用了双引号指定了小写,那么查询时字段名也要用双引号小写。 例如,如果名创建时是`"MyTable"`(带双引号创建),则查询时: select comments from user_col_comments where table_name='MyTable' and column_name='MyColumn'; -- 这样会查不到,因为系统存储的是创建时的形式 实际上,在数据字典中存储的是创建时的形式,所以应该用: select comments from user_col_comments where table_name='MYTABLE'; -- 如果没有用双引号,则系统自动转大写 或者,如果用了双引号创建小写名,则存储的是小写,那么查询条件应该是: select comments from user_col_comments where table_name='mytable'; -- 注意:这里必须存储的一致,而存储的是小写 但是,为了准确,我们可以使用: select comments from user_col_comments where lower(table_name)=lower('sys_notice') and lower(column_name)=lower('scope'); 或者,使用视图`all_col_comments`或`dba_col_comments`(如果有权限)时,同样需要注意大小写问题。 因此,总结添加字段备注的步骤: 1. 确定字段名的准确大小写(可以通过数据字典查看) 2. 执行COMMENT语句 示例代码: ```sql -- 添加字段备注 COMMENT ON COLUMN sys_notice.scope IS '发布范围'; -- 验证备注 SELECT comments FROM user_col_comments WHERE table_name = UPPER('sys_notice') -- 如果名在创建时未使用双引号,则系统存储为大写 AND column_name = UPPER('scope'); -- 同上 -- 或者使用(不区分大小写): SELECT comments FROM user_col_comments WHERE LOWER(table_name) = LOWER('sys_notice') AND LOWER(column_name) = LOWER('scope'); ``` 注意:如果在别的模式(schema)下,则需要使用模式名限定名,例如: COMMENT ON COLUMN schema_name.table_name.column_name IS '备注内容'; 权限要求:执行COMMENT操作的用户需要是的所有者或者拥有的ALTER权限。 最后,根据用户之前的问题(修改字段可为空)本次问题(添加字段备注),我们可以生成一些相关问题。 生成相关问题: 1. 如何修改金仓数据库中的注释? 2. 如何查看金仓数据库中某个的所有字段备注? 3. 金仓数据库中如何修改已有字段备注? 4. 金仓数据库的COMMENT语句支持哪些对象? 5. 在金仓数据库中,如何为视图的列添加注释? 注意:在生成相关问题后,我们按照要求用“§§相关问题§§”标记出来。</think>### 金仓数据库添加字段备注的完整指南 #### 核心语法 ```sql -- 为字段添加/修改备注 COMMENT ON COLUMN 名.字段名 IS '备注内容'; ``` #### 操作步骤详解 1. **连接数据库** ```bash ksql -U 用户名 -d 数据库名 -W 密码 ``` 2. **添加字段备注** ```sql -- 示例:为sys_notice的scope字段添加备注 COMMENT ON COLUMN sys_notice.scope IS '发布范围(部门ID列)'; ``` 3. **验证备注添加** ```sql -- 查询字段备注信息 SELECT comments FROM user_col_comments WHERE table_name = 'SYS_NOTICE' AND column_name = 'SCOPE'; ``` #### 特殊场景处理 1. **带模式名的** ```sql COMMENT ON COLUMN 模式名.名.字段名 IS '备注内容'; ``` 2. **修改已有备注** ```sql -- 直接覆盖原有备注 COMMENT ON COLUMN sys_notice.scope IS '新的备注内容'; ``` 3. **删除备注** ```sql COMMENT ON COLUMN sys_notice.scope IS ''; ``` #### 备注查询技巧 ```sql -- 查询的所有字段备注 SELECT column_name, comments FROM user_col_comments WHERE table_name = '名'; -- 模糊查询备注内容 SELECT table_name, column_name, comments FROM user_col_comments WHERE comments LIKE '%关键词%'; ``` #### 权限管理 ```sql -- 授予用户添加备注权限 GRANT COMMENT ON TABLE 名 TO 用户名; -- 验证权限 SELECT grantee, privilege_type FROM information_schema.table_privileges WHERE table_name = '名'; ``` > 注意:金仓数据库默认将字段名存储为大写,查询时需使用大写名称或通过`UPPER()`函数转换[^2]: > ```sql > SELECT * FROM user_col_comments > WHERE table_name = UPPER('sys_notice'); > ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值