一、该列非主键、无default约束

直接更新:

alter table 表名 alter column 列名 数据类型

二、该列为主键列、无default约束

(1)删除主键

alter table 表名 drop constraint 主键名称

(2)更新数据类型

alter table 表名 alter column 列名 数据类型 not null

(3)添加主键

alter table 表名 add constraint 主键名称 primary key (主键字段1,主键字段2)

三、该列为主键列,有default约束

(1)删除主键

alter table 表名 drop constraint 主键名称

(2)解除default约束

USE 数据库名
IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'default约束名' 
AND type = 'D')
BEGIN 
EXEC sp_unbindefault '数据表.字段'
END
GO

(3)更新数据类型

alter table 表名 alter column 列名 数据类型 not null

(4)添加主键

alter table 表名 add constraint 主键名称 primary key (主键字段1,主键字段2)

辅助语句:

(1)找出字段约束名称并赋值到变量中

declare @name varchar(50)
select  @name =b.name from sysobjects b join syscolumns a on b.id = a.cdefault 
where a.id = object_id('表名') 
and a.name ='列名'

(2)将字段绑定到用户自定义的数据类型,并不影响现有绑定(使用futureonly)

此示例将默认值 def_ssn 绑定到用户定义的数据类型 ssn。因为已指定 futureonly,所以不影响类型 ssn 的现有列。
USE 数据库名
EXEC sp_bindefault '列名', '自定义数据类型', 'futureonly'

SQL中改变列的数据类型的更多相关文章

  1. 备忘:MySQL中修改表中某列的数据类型、删除外键约束

    -- MySQL中修改表中某列的数据类型 ALTER TABLE [COLUMN] 表名 MODIFY 列名 列定义; -- 删除外键约束 SHOW CREATE TABLE 表名; -- 复制CON ...

  2. 【转载】C#如何获取DataTable中某列的数据类型

    在C#的数据表格DataTable的操作中,有时候因为业务需要,我们需要获取到DataTable所有列或者某一列的数据类型,此时我们可以通过DataTable中的Columns属性对象的DataTyp ...

  3. 查询MS sql server里的所有表 SQL中所有列,说明,类型 查询总存储过程数

    1.查询SQL中的所有表: Select TABLE_NAME FROM   "你的数据库名称".INFORMATION_SCHEMA.TABLES Where TABLE_TYP ...

  4. Asp.net 修改已有数据的DataTable中某列的数据类型

    DataTable dt_PI = new DataTable(); //克隆表结构 dt_PI = ds.Tables[].Clone(); dt_PI.Columns["FLTFullP ...

  5. 在 Pandas 中更改列的数据类型

    import pandas as pd import numpy as np a = [['a', '1.2', '4.2'], ['b', '70', '0.03'], ['x', '5', '0' ...

  6. 在Pandas中更改列的数据类型【方法总结】

    先看一个非常简单的例子: a = [['a', '1.2', '4.2'], ['b', '70', '0.03'], ['x', '5', '0']] df = pd.DataFrame(a) 有什 ...

  7. PL/SQL中查看列注释、列属性

  8. sql中一列拆成两列

    declare @table table (name nvarchar(4))insert into @tableselect '张三' union allselect '李四' union alls ...

  9. 获取MySql每一列的数据类型和长度默认值等信息

    如何获取MySql表中各个列的数据类型? show columns from tablename 返回结果如下: id    int(11)     NO  PRI         auto_incr ...

随机推荐

  1. 转载:IntelliJ IDEA 2016.2 配置Tomcat 运行Web项目

    以前都用MyEclipse写程序的 突然用了IDEA各种不习惯的说 借鉴了很多网上好的配置办法,感谢各位大神~ 前期准备 IDEA.JDK.Tomcat请先在自己电脑上装好 好么~ 博客图片为主 请多 ...

  2. docker Get started part 4: Accessing your cluster cannot curl

    1. 问题描述 docker Get started part 4 can't visit myvm1 or myvm2. curl: (7) Failed to connect to 192.168 ...

  3. 不支持PowerShell 2.0版本(don't support PowerShell version 2.0. )

    在“程序包管理器控制台”使用命令“update-database”会提示:The Entity Framework Core Package Manager Console Tools don't s ...

  4. DOM 中 Property 和 Attribute 的区别(转)

    property 和 attribute非常容易混淆,两个单词的中文翻译也都非常相近(property:属性,attribute:特性),但实际上,二者是不同的东西,属于不同的范畴. property ...

  5. Stream接口

    数据读写可以看作是事件模式(Event)的特例,不断发送的数据块好比一个个的事件.读数据是read事件,写数据是write事件,而数据块是事件附带的信息.Node 为这类情况提供了一个特殊接口Stre ...

  6. CentOS 6.6 Oracle 安装

    阿里云服务器上要装Oracle,搞了半天才搞定. 项目阿里云用的是CentOS 6.5 X86_64 ,我本地虚拟机装的是CentOS 6.6 X86_64.不过用 cat /proc/version ...

  7. push和commit的区别

    push和commit的区别 git作为支持分布式版本管理的工具,它管理的库(repository)分为本地库.远程库.git commit操作的是本地库,git push操作的是远程库. git c ...

  8. Python短小精悍的Orator基本使用技巧

    基本使用 配置 设置数据库配置参数,创建一个DatabaseManager实例. from orator import DatabaseManager config = { 'mysql': { 'd ...

  9. 快速搭建LAMP

    1.安装Apache sudo apt-get install apache2 2.安装Mysql sudo apt-get install mysql-server 中间会出现输入 Mysql 的 ...

  10. 《鸟哥的Linux私房菜》读书笔记2

    1. 压缩后缀与压缩程序: *.Z compress 程序压缩的档案; *.bz2 bzip2 程序压缩的档案; *.gz gzip 程序压缩的档案; *.tar tar 程序打包的数据,并没有压缩过 ...