当前位置: 首页 > news >正文

【Sql Server】新手一分钟看懂在已有表基础上增加字段和说明

欢迎来到《小5讲堂》,大家好,我是全栈小5。
这是《Sql Server》系列文章,每篇文章将以博主理解的角度展开讲解,
特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌握。
温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!

在这里插入图片描述

目录

  • 前言
  • 创建表
    • 效果
    • 代码
  • 新增字段
    • 格式
    • 效果
    • 代码
    • 注意事项
  • 设置说明
    • 格式
    • 效果
    • 代码
    • 注意事项
  • 存储过程
  • 文章推荐

前言

在实际项目开发中,在整个开发过程中,随着对业务不断优化和深入,当时设计的表结构,
可能已经无法满足当前需求,需要增加或者移除一些字段,本篇文章将展示如何在已有表基础上增加表字段和备注说明

创建表

效果

在这里插入图片描述

代码

假设我们增加如下表结构

-- 创建表
create table my_table_name
(id int identity(1,1) primary key,name_text varchar(50),create_time datetime
)

新增字段

格式

新增字段的格式:alter table 这里写自己的表名 add 字段名 数据类型

效果

在这里插入图片描述

代码


-- 增加字段
alter table my_table_name add value_text nvarchar(50)

注意事项

必须在已有表基础上才能增加,否则肯定是无法添加成功
在这里插入图片描述

设置说明

默认增加字段时,是无法同时给字段添加备注信息的,需要额外操作。

格式

使用sql server内置的存储过程sp_addextendedproperty,然后通过传参数调用,内部会进行修改。
只需要修改,@value、@level1type、@level2type,这三个地方

exec sp_addextendedproperty @name = N'MS_Description', @value = N'字段名',@level0type = N'SCHEMA', @level0name = 'dbo', @level1type = N'TABLE',  @level1name = '这里是表名',@level2type = N'COLUMN', @level2name = '这里是表字段';

效果

在这里插入图片描述

代码

exec sp_addextendedproperty @name = N'MS_Description', @value = N'这里填字段说明',@level0type = N'SCHEMA', @level0name = 'dbo', @level1type = N'TABLE',  @level1name = 'my_table_name',@level2type = N'COLUMN', @level2name = 'value_text';

注意事项

参数一定要传对,必须修改已存在的表以及字段,否则会报错
在这里插入图片描述

存储过程

sp_addextendedproperty,这个是内置的系统存储过程在这里插入图片描述

  • 基本概念

sp_addextendedproperty 存储过程的作用是向 SQL Server 数据库中的对象(如表、列、约束等)添加扩展属性。
扩展属性是用于存储关于数据库对象的元数据或说明的键值对。

使用 sp_addextendedproperty 存储过程可以在指定的对象上添加扩展属性,并为该属性提供名称和值。
通过增加扩展属性,你可以为数据库对象提供说明、备注、版本或任何其他类型的元数据信息。

这些扩展属性可以帮助你在开发、维护和管理数据库时更好地理解和记录对象的特性、用途和变化。
它们可以在查询和文档生成过程中使用,也可以在数据库设计和数据字典维护中使用。

另外,通过使用 sp_addextendedproperty 存储过程,你还可以在其他应用和工具中检索和利用这些扩展属性,从而提供了更多关于数据库对象的可访问信息。

  • 代码

下面是存储过程的代码,感兴趣的可以分析研究下

USE [TempDatabase]
GO
/****** Object:  StoredProcedure [sys].[sp_addextendedproperty]    Script Date: 2024/01/26 15:31:27 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [sys].[sp_addextendedproperty]@name sysname,@value sql_variant            = NULL,@level0type    varchar(128)    = NULL,@level0name    sysname            = NULL,@level1type    varchar(128)    = NULL,@level1name    sysname            = NULL,@level2type    varchar(128)    = NULL,@level2name    sysname            = NULL
asdeclare @ret intif datalength(@value) > 7500beginraiserror(15097,-1,-1)return 1endif @name is nullbeginraiserror(15600,-1,-1,'sp_addextendedproperty')return (1)endexecute @ret = sys.sp_validname @nameif (@ret <> 0)beginraiserror(15600,-1,-1,'sp_addextendedproperty')return (1)endBEGIN TRANSACTIONBEGIN TRYEXEC %%ExtendedPropertySet().AddValue(Name = @name, Value = @value, Level0type = @level0type, Level0name = @level0name, Level1type = @level1type, Level1name = @level1name, Level2type = @level2type, Level2name = @level2name) END TRYBEGIN CATCHif (xact_state() <> 0) ROLLBACK TRANSACTION;THROWEND CATCHCOMMIT TRANSACTIONreturn (0)

文章推荐

同类型文章,推荐大家阅读博主在csdn平台上写的其他关于sql server的文章

  • 【数据库】Sql Server数据迁移,处理自增字段赋值

  • 【数据类型】C#和Sql Server、Mysql、Oracle等常见数据库的数据类型对应关系

总结:温故而知新,不同阶段重温知识点,会有不一样的认识和理解,博主将巩固一遍知识点,并以实践方式和大家分享,若能有所帮助和收获,这将是博主最大的创作动力和荣幸。也期待认识更多优秀新老博主。

http://www.lryc.cn/news/289839.html

相关文章:

  • 亚信安慧AntDB打造开放创新的数据库生态
  • 在Mixamo网站上,下载的动画导入unity给自己的模型添加后出错怎么解决
  • java servlet运输公司管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目
  • React中antd的使用技巧
  • 2024年第一篇博客
  • Nginx负载均衡下的webshell连接
  • JAVA编程语言单词汇总
  • 微信小程序(十七)自定义组件生命周期(根据状态栏自适配)
  • 百度搜索智能精选是什么东西、怎么加入?
  • 小程序开发平台:全功能小程序商城功能 带完整的安装代码包以及搭建教程
  • Vue3生命周期 VS Vue2生命周期(小记)
  • MYSQL基本查询(CURD:创建、读取、更新、删除)
  • 头歌C语言指针进阶
  • 民安智库-公共健身场所满意度调研
  • 《HTML 简易速速上手小册》第3章:HTML 的列表与表格(2024 最新版)
  • IBeginDragHandler,IEndDragHandler,IDragHandler拖拽接口
  • 面试经典 150 题 ---- 删除排序数组中的重复项
  • 深度学习(6)---Transformer
  • day34WEB 攻防-通用漏洞文件上传黑白盒审计逻辑中间件外部引用
  • 面试经典 150 题 ---- 移除元素
  • 12.如何将图像转化为矩阵形式
  • 语义分割(2) :自定义Dataset和Dataloader
  • Android Automotive:在路上释放 Android 操作系统的力量
  • 从零开始做题:逆向 ret2shellcode orw
  • 【DDD】学习笔记-限界上下文的控制力
  • springboot(ssm医院疫情防控系统 疫苗核酸预约系统Java系统
  • go语言中的Mutex
  • Vue的状态管理Vuex
  • 单片机14-17
  • DAY_12(树链剖分)