欢迎来到《小5讲堂》,大家好,我是全栈小5。
这是《Sql Server》系列文章,每篇文章将以博主理解的角度展开讲解,
特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌握。
温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!
目录
前言
在实际项目开发中,在整个开发过程中,随着对业务不断优化和深入,当时设计的表结构,
可能已经无法满足当前需求,需要增加或者移除一些字段,本篇文章将展示如何在已有表基础上增加表字段和备注说明
创建表
效果
代码
假设我们增加如下表结构
-- 创建表createtable my_table_name
(
id intidentity(1,1)primarykey,
name_text varchar(50),
create_time datetime)
新增字段
格式
新增字段的格式:alter table 这里写自己的表名 add 字段名 数据类型
效果
代码
-- 增加字段altertable 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
ALTERprocedure[sys].[sp_addextendedproperty]@name sysname,@value sql_variant =NULL,@level0typevarchar(128)=NULL,@level0name sysname =NULL,@level1typevarchar(128)=NULL,@level1name sysname =NULL,@level2typevarchar(128)=NULL,@level2name sysname =NULLasdeclare@retintif datalength(@value)>7500beginraiserror(15097,-1,-1)return1endif@nameisnullbeginraiserror(15600,-1,-1,'sp_addextendedproperty')return(1)endexecute@ret= sys.sp_validname @nameif(@ret<>0)beginraiserror(15600,-1,-1,'sp_addextendedproperty')return(1)endBEGINTRANSACTIONBEGIN TRY
EXEC%%ExtendedPropertySet().AddValue(Name =@name,Value=@value, Level0type =@level0type, Level0name =@level0name, Level1type =@level1type, Level1name =@level1name, Level2type =@level2type, Level2name =@level2name)END TRY
BEGIN CATCH
if(xact_state()<>0)ROLLBACKTRANSACTION;
THROW
END CATCH
COMMITTRANSACTIONreturn(0)
文章推荐
同类型文章,推荐大家阅读博主在csdn平台上写的其他关于sql server的文章
- 【数据库】Sql Server数据迁移,处理自增字段赋值
- 【数据类型】C#和Sql Server、Mysql、Oracle等常见数据库的数据类型对应关系
总结:温故而知新,不同阶段重温知识点,会有不一样的认识和理解,博主将巩固一遍知识点,并以实践方式和大家分享,若能有所帮助和收获,这将是博主最大的创作动力和荣幸。也期待认识更多优秀新老博主。
版权归原作者 全栈小5 所有, 如有侵权,请联系我们删除。