SQLServer批量添加字段注释

本文深入探讨了SQL存储过程的使用场景,具体介绍了如何通过创建特定的表类型和存储过程来自动更新数据库表的注释。通过实例演示了创建表类型、存储过程及调用方法,确保了数据库表的描述信息保持最新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如题,先定义表类型:

CREATE TYPE column_comments AS TABLE(column_name VARCHAR(200),comment VARCHAR(1000))
然后再定义存储过程:
CREATE PROC sp_add_comments @tmp_column_comments column_comments READONLY, @tb_name VARCHAR(200) AS
DECLARE @column_name VARCHAR(200), @comment VARCHAR(1000)
DECLARE c_cms CURSOR LOCAL FOR SELECT * FROM @tmp_column_comments
OPEN c_cms
FETCH NEXT FROM c_cms INTO @column_name, @comment
WHILE @@FETCH_STATUS = 0
BEGIN
    IF (SELECT COUNT(1) FROM fn_listextendedproperty('MS_Description', 'SCHEMA', 'dbo', 'TABLE', @tb_name, 'COLUMN', @column_name)) > 0
        EXEC sp_updateextendedproperty @name = 'MS_Description', @value = @comment, @level0type = 'SCHEMA', @level0name = 'dbo', @level1type = 'TABLE', @level1name = @tb_name, @level2type = 'COLUMN', @level2name = @column_name
    ELSE
        EXEC sp_addextendedproperty @name = 'MS_Description', @value = @comment, @level0type = 'SCHEMA', @level0name = 'dbo', @level1type = 'TABLE', @level1name = @tb_name, @level2type = 'COLUMN', @level2name = @column_name
    FETCH NEXT FROM c_cms INTO @column_name, @comment
END
CLOSE c_cms
DEALLOCATE c_cms
调用方法如下:
DECLARE @tmp_cms column_comments
INSERT INTO @tmp_cms VALUES('id','主键ID')
EXEC sp_add_comments @tmp_cms, 'table_test'


EOF.

转载于:https://my.oschina.net/cwalet/blog/357676

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值