zoukankan      html  css  js  c++  java
  • SQLServer修改数据列

    修改数据列

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

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

    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;

    总结

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

  • 相关阅读:
    “LM/w3svc/1/root /***” 别名已存在
    Dawn of a New Day
    线程池(java.util.concurrent.ThreadPoolExecutor)的使用
    放心走吧,谷歌中国
    实现MySQL允许远程连接
    Google Engineer Gets $6 Million For Not Going To Facebook
    mysql主从同步出现Slave_IO_Running: Connecting的解决思路
    解决eclipse/sts加入@Controller注解后alt+/快捷键的提示功能失效
    Maven异常:Missing artifact org.slf4j:slf4japi:jar:1.7.25以及properties标签作用
    eclipse和sts使用alt+/代码提示,有两个相同的提示
  • 原文地址:https://www.cnblogs.com/vuenote/p/9514399.html
Copyright © 2011-2022 走看看