修改数据列

在开发和生产过程中,列名的拼写错误或者列名的更改是需要操作数据表的,大多数情况下都是不需要修改的.

以下几种情况下我们并不能直接修改数据列:

1、用于索引的列。 
2、用于 CHECK、FOREIGN KEY、UNIQUE 或 PRIMARY KEY 约束的列。 
3、与默认值(由 DEFAULT 关键字定义)相关联的列,或绑定到默认对象的列。 
4、绑定到规则的列。

使用SSMS数据库管理工具修改列

1、连接数据库,打开要修改的数据库,选择数据表-》右键点击-》选择设计。

2、在新打开的窗口视图中-》点击要修改的行-》可以修改列名、列类型、是否可空、属性等-》修改完成点击保存按钮(或者ctrl+s)。

使用T-SQL脚本修改列

修改列名

语法:exec sp_rename  表明.旧列名,新列名;

示例:exec sp_rename '[test1].height6','height7';

修改列数据类型

语法:alter table 数据库名.dbo.表名 alter column 列名 类型 [约束];

示例:alter table [testss].dbo.[test1] alter column height7 int null;

修改列是否可空

语法:alter table 数据库名.dbo.表名 alter column 列名 类型 约束;

示例:alter table [testss].dbo.[test1] alter column height7 int not null;

修改列默认值

如果默认值不存在

语法:alter table 数据库名.dbo.表名 add constraint 约束名 default 默认值 for 列名;

示例:alter table [testss].dbo.[test1] add constraint df_h default 1 for height7;

如果默认值存在

语法:

--第一步判断默认值否存在,如果存在就删除,如果不存在则不删除
if exists (select * from sys.check_constraints where object_id = object_id(默认值约束名) and parent_object_id = object_id(表名))
alter table 表名 drop constraint 默认值约束名

--第二步添加默认值

alter table 表名 add constraint  约束名 default 默认值 for 列名;

示例:

--第一步判断约束是否存在,如果存在就删除,如果不存在则不删除
if exists (select * from sys.check_constraints where object_id = object_id('df_h') AND parent_object_id = object_id('[testss].dbo.[test1]'))
alter table [testss].dbo.[test1] drop constraint df_h

--第二步添加默认值

alter table [testss].dbo.[test1] add constraint df_h default 2 for height7;

总结

在开发或者生产数据库中,数据列一经建好,不要轻易改动,随意改动可能会引起数据库的级联操作失败和代码错误。

SQLServer修改数据列的更多相关文章

  1. SQLServer删除数据列

    删除数据列 开发或者生产过程中多建.错误或者重复的数据列需要进行删除操作. 使用SSMS数据库管理工具删除数据列 方式一 1.打开数据库->选择数据表->展开数据表->展开数据列-& ...

  2. sqlserver修改一个列

    --修改一个列alter table UserInfo alter Column [Address] nvarchar(64) null

  3. Oracle与SQLSERVER修改数据文件的路径

    1. SQLSERVER ALTER DATABASE CWBASEMSS modify file (name = cwbasemss_dat ,filename = 'c:\cwdata\mss\C ...

  4. SQLSERVER 修改数据实例的排序规则

    SQL Server服务器修改排序规则的方法 操作及验证步骤: 1 登录数据库后,查看当前安装数据库默认排序规则的两种方式 方式一.使用SQL Server 2014 Management Studi ...

  5. SQLServer修改表数据

    使用SSMS数据库管理工具修改数据 修改任意一条或者多条都可以 1:打开数据库,选择数据表,右键点击->编辑所有行(如未配置,点击编辑前200行). 2.编辑需要修改的数据->编辑完成后, ...

  6. C# 修改DataTable 列的 DataType

    /// <summary> ///当DataTable中有值时,是不允许修改列的DataType /// 修改数据表DataTable某一列的数据类型和记录值 /// </summa ...

  7. SqlServer创建数据表描述及列描述信息

    SqlServer创建数据表描述及列描述信息 Intro Q: 为什么要创建描述信息? A: 鼠标悬停在对应表和列上时,会出现描述信息,可以提高工作的效率,借助工具我们根据数据表可以生成Model,可 ...

  8. SQLServer之通过视图修改数据

    通过视图增删改数据注意事项 需要对目标表的 UPDATE.INSERT 或 DELETE 权限(取决于执行的操作). 如果视图引用多个基表,则不能删除行. 如果视图引用多个基表,只能更新属于单个基表的 ...

  9. SQLServer判断指定列的默认值是否存在,并修改默认值

    SQLServer判断指定列的默认值是否存在,并修改默认值 2008年10月21日 星期二 下午 12:08 if exists(select A.name as DefaultName,B.name ...

随机推荐

  1. hadoop退出安全模式Name node is in safe mode

    在使用 hdfs 的时候出现如下错误: 18/01/12 09:04:34 INFO fs.TrashPolicyDefault: Namenode trash configuration: Dele ...

  2. java多线程(7)---Condition

    Condition 一.Condition概述 在线程的同步时可以使一个线程阻塞而等待一个信号,同时放弃锁使其他线程可以能竞争到锁. 在synchronized中我们可以使用Object的wait() ...

  3. qt之窗口换肤

    1.相关文章 Qt 资源系统qt的moc,uic,rcc命令的使用 2.概要    毕业两年了,一直使用的是qt界面库来开发程序,使用过vs08.10.13等开发工具,并安装了qt的插件,最近在做客户 ...

  4. 通过LRU实现通用高效的超时连接探测

    编写网络通讯都要面对一个问题,就是要把很久不存活的死连接清除,如果不这样做那死连接最终会占用大量内存影响服务运作!在实现过程中一般都会使用ping,pong原理,通过ping,pong来更新连接的时效 ...

  5. 产品研发团队如何融合OKR与Scrum敏捷开发?

    「 OKR 」现在非常的火爆,很多公司都在使用,不仅国外的 Google.英特尔等大公司在用,国内的一线知名互联网企业今日头条和一些创业团队也都在使用. 那为什么「 OKR 」这么受欢迎呢,因为把它可 ...

  6. AJAX应用【股票案例、验证码校验】

    一.股票案例 我们要做的是股票的案例,它能够无刷新地更新股票的数据.当鼠标移动到具体的股票中,它会显示具体的信息. 我们首先来看一下要做出来的效果: 1.1服务器端分析 首先,从效果图我们可以看见很多 ...

  7. 阿里巴巴的26款超神Java开源项目!

    来源:https://segmentfault.com/a/1190000017346799 1.分布式应用服务开发的一站式解决方案 Spring Cloud Alibaba Spring Cloud ...

  8. 第2章 术语 - Identity Server 4 中文文档(v1.0.0)

    规范.文档和对象模型等都使用特定的术语来表述. 2.1 IdentityServer IdentityServer是OpenID Connect提供程序 - 它实现OpenID Connect和OAu ...

  9. C#工具:防sql注入帮助类

    SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编程时的疏忽,通过SQL语句,实现无帐号登录,甚至篡改数据库. using System; using Sy ...

  10. IDEA写scala简单操作

    今天尝试了一下在IntelliJ IDEA里面写Scala代码,并且做到和Java代码相互调用,折腾了一下把过程记录下来. 首先需要给IntelliJ IDEA安装一下Scala的插件,在IDEA的启 ...