SQL Server数据库,如何快速更新数据库表和字段的注释信息

2024-01-12

说明

SQL Server数据库,如何快速更新数据库表和字段的注释信息?我们先看一下常规操作

题外话,MySql可以通过ALTER 语句更新注释,也可以在创建表或新增字段时直接在语句后面指定注释信息

手动更新注释

对注释进行增删改查都可以在此页面进行

数据库表【右键】选择设计

image-20240111163511806

选择列,修改【说明】属性,然后保存即可

image-20240111163646378

使用SQL语句更新注释

我们可以借助以下存储过程来对注释进行增删改查 。

注意,以下存储过程中的表名、字段名不能用[]包起来、不区分大小写

查看注释信息

extended_properties 查看注释信息

image-20240112095444223

增加注释信息

sp_addextendedproperty 增加注释信息

若该字段或表存在注释信息时,执行 sp_addextendedproperty 会报错:无法添加属性。'dbo.User_TradeInfo.Frzamt' 已存在属性 'MS_Description'。

如果我们要修改注释信息,则应该使用 sp_updateextendedproperty 修改注释信息,或者先删除,再增加注释信息

image-20240111172449599

修改注释信息

sp_updateextendedproperty 修改注释信息

image-20240112095555114

若该字段或表不存在注释信息时,执行 sp_updateextendedproperty 会报错:无法更新或删除属性。'dbo.User_TradeInfo.CreateStaffId' 不存在属性 'MS_Description'。

image-20240111173118877

如果我们要增加注释信息,则应该使用 sp_addextendedproperty 修改注释信息

删除注释信息

sp_dropextendedproperty 删除注释信息,注意没有@value参数

image-20240112095645188

若该字段或表不存在注释信息时,执行 sp_addextendedproperty 会报错:无法更新或删除属性。'dbo.User_TradeInfo.Frzamt' 不存在属性 'MS_Description'。

image-20240111173713043

快速更新数据库表和字段的注释信息

借助循环生成语句,快速更新数据库表和字段的注释信息

image-20240111191709441

执行以上SQL语句,一键生成后,我们只要修改字段相应的注释信息,接着执行这些语句,就可以快速更新字段和表的注释信息了

image-20240112100546709

同理我还可以快速删除表和字段的注释信息

执行以上SQL语句,一键生成后,执行这些语句,就可以快速删除字段和表的注释信息了

image-20240111195647309

虽然还是需要我们一个一个复制注释信息,但是这样复制会比较快,尤其适用于迁移(已存在的注释的话,可以右键数据库表生成create DDL语句,也可以拿到这些注释命令)

image-20240111200530251

EF迁移数据库时设置注释

我们还可以修改 Add-Migration ... 生成后的代码,帮助我们设置注释

更新数据库后,当我们使用 Script-Migration ... 生成迁移脚本时,也会自动帮我们把注释信息加上

image-20240112105933745