【Sql Server】新手一分钟看懂在已有表基础上修改字段默认值和数据类型

04-27 8540阅读 0评论

欢迎来到《小5讲堂》,大家好,我是全栈小5。

这是《Sql Server》系列文章,每篇文章将以博主理解的角度展开讲解,

特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌握。

温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!

【Sql Server】新手一分钟看懂在已有表基础上修改字段默认值和数据类型 第1张

目录

  • 前言
  • 创建表
    • 效果
    • 代码
    • 设置默认值
      • 正确格式
      • 错误格式
      • 效果
      • 代码
      • 修改类型
        • 格式
        • 效果
        • 代码
        • 疑问解答
          • 原因
          • 文章推荐

            前言

            上篇文章已经讲解在已有表基础上新增表字段以及设置说明,

            本篇文章将讲解,如何在已有表基础上给指定表修改默认值以及数据类型。

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

            创建表

            效果

            【Sql Server】新手一分钟看懂在已有表基础上修改字段默认值和数据类型 第2张

            代码

            假设我们增加如下表结构

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

            设置默认值

            正确格式

            在 SQL Server 2022 中,设置字段的默认值的确有了一种新的语法。

            • 以下是正确的示例:
              -- 添加字段的默认值
              ALTER TABLE 表名
              ADD CONSTRAINT 默认值约束名 DEFAULT 默认值 FOR 字段名 WITH VALUES;
              

              请将 “表名” 替换为你要修改的表的实际名称,将 “字段名” 替换为你要设置默认值的字段的实际名称,将 “默认值” 替换为你想要设置的新默认值。

              • 以下是一个具体的示例,将表 “xxx” 中的字段 “create_time” 的默认值设置为当前时间:
                -- 添加字段的默认值
                ALTER TABLE xxx
                ADD CONSTRAINT DF_xxx_create_time DEFAULT GETDATE() FOR create_time WITH VALUES;
                

                执行这段代码后,它将为表 “xxx” 中的字段 “create_time” 添加一个名为 “DF_xxx_create_time” 的默认值约束,并将默认值设置为当前时间。

                同时,WITH VALUES 选项可以通过向现有数据行填充默认值来更新现有数据。

                错误格式

                网上有些提到的一些格式可能是错的,或者是旧的写法

                alter table 表名

                alter column 字段名 default 默认值;

                【Sql Server】新手一分钟看懂在已有表基础上修改字段默认值和数据类型 第3张

                效果

                【Sql Server】新手一分钟看懂在已有表基础上修改字段默认值和数据类型 第4张

                代码

                -- 设置默认值
                alter table my_table_name 
                add default (getdate()) for create_time with values
                

                修改类型

                格式

                填写表名、字段名、数据类型,默认是null可空,在后面设置not null不可空

                alter table 表名
                alter column 字段名 数据类型 [not null]
                

                效果

                • 修改前

                  【Sql Server】新手一分钟看懂在已有表基础上修改字段默认值和数据类型 第5张

                • 修改后

                  【Sql Server】新手一分钟看懂在已有表基础上修改字段默认值和数据类型 第6张

                  代码

                  -- 修改类型 - 设置数据类型以及不可为空值
                  alter table my_table_name 
                  alter column name_text nvarchar(20) not null
                  -- 修改类型 - 设置数据类型
                  alter table my_table_name 
                  alter column value_text varchar(20)
                  

                  疑问解答

                  也许有同学会问,有可视化工具修改字段类型和默认值,为什么还要用sql语句来修改?

                  原因

                  使用 SQL 语句来修改字段类型和默认值是一种最常见和灵活的方法。

                  SQL 语句允许你对数据库进行高度自定义的操作,使你能够实现更复杂的修改和逻辑。

                  虽然现在有许多强大的可视化工具可以用来管理数据库,但是 SQL 语句仍然是数据库管理和维护的核心。

                  使用 SQL 语句可以确保准确性和一致性,并提供更详细的控制,适用于广泛的数据库管理任务。

                  1.灵活性

                  SQL 语句提供了更大的灵活性,可以满足各种复杂的需求。可以定义自定义规则和逻辑来处理字段类型和默认值的修改,与数据库设计和业务需求更加贴合。

                  2.批量操作

                  使用 SQL 语句,可以一次性对多个表、多个字段进行修改,以提高效率,并确保修改的一致性。

                  3.跨平台和可移植性

                  SQL 语句可以在不同的数据库系统中使用,使代码更具可移植性。这意味着,如果需要在不同的数据库系统之间进行迁移或使用多个数据库系统,可以更轻松地迁移和管理你的数据库结构。

                  4.版本控制和文档化

                  SQL 语句可以轻松地进行版本控制,能够记录和跟踪数据库结构的变化,从而方便团队合作和维护。此外,SQL 语句也可以作为文档,记录对数据库结构的修改和操作步骤,方便以后查阅和理解。

                  文章推荐

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

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

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

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


免责声明
1、本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明。
2、本网站转载文章仅为传播更多信息之目的,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所
提供信息的准确性及可靠性,但不保证信息的正确性和完整性,且不对因信息的不正确或遗漏导致的任何
损失或损害承担责任。
3、任何透过本网站网页而链接及得到的资讯、产品及服务,本网站概不负责,亦不负任何法律责任。
4、本网站所刊发、转载的文章,其版权均归原作者所有,如其他媒体、网站或个人从本网下载使用,请在
转载有关文章时务必尊重该文章的著作权,保留本网注明的“稿件来源”,并白负版权等法律责任。

手机扫描二维码访问

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,8540人围观)

还没有评论,来说两句吧...

目录[+]