一、该列非主键、无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. linux命令-vim编辑模式

    按  i  键 进去编辑模式 左下角显示 插入 按 I  键 进入编辑模式 光标到行首 按 a 键 在光标的后一位 按A 键 光标在行尾 按 o 键 在光标下面另起一行 按O 键  在光标上面另起一行 ...

  2. shell入门-grep2

    案例介绍 搜索关键词带‘root’的行 并输出行号 [root@wangshaojun ~]# cg -n 'root' 1.txt1:root:x:0:0:root:/root:/bin/bash1 ...

  3. Linux性能测试工具-UnixBench--安装以及结果分析

    参考链接:http://blog.csdn.net/gatieme/article/details/50912910 依赖包安装:      yum install -y SDL-devel mesa ...

  4. Java探索之旅(4)——方法和Random&Math类

    1.基本知识点    ❶方法在C++里面称为函数.调用方法时,应该类型兼容--即不需显式类型转换即可将形参传递给实参.    ❷形参的改变不影响实参的值.    ❸Java注重模块化设计和自顶向下的设 ...

  5. [hdu1712]ACboy needs your help分组背包

    题意:一共$m$天,$n$门课程,每门课程花费$i$天得到$j$的价值,求最后获得的最大价值 解题关键:分组背包练习,注意循环的顺序不能颠倒 伪代码: $for$ 所有的组$k$   $for{\rm ...

  6. [poj3264]rmq算法学习(ST表)

    解题关键:rmq模板题,可以用st表,亦可用线段树等数据结构 log10和log2都可,这里用到了对数的换底公式 类似于区间dp,用到了倍增的思想 $F[i][j] = \min (F[i][j - ...

  7. JS中apply和call的用法

    JavaScript中有一个call和apply方法,其作用基本相同,但也有略微的区别. 先来看看JS手册中对call的解释: call 方法调用一个对象的一个方法,以另一个对象替换当前对象. cal ...

  8. CSS学习系列2 -- CSS中的清除浮动

    CSS中有一个很常见的问题,就是元素的浮动. 那么,到底什么是元素的浮动呢,我们来看一个例子 举个例子,在一个div里面内部有浮动元素的话,这个浮动元素会让这个div的高度塌陷. .myDiv{ ba ...

  9. APP中的存储路径

    访问SD卡 所需权限  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/& ...

  10. 基于netty框架的轻量级RPC实现(附源码)

    前言 Rpc( Remote procedure call):是一种请求 - 响应协议.RPC由客户端启动,客户端向已知的远程服务器发送请求消息,以使用提供的参数执行指定的过程.远程服务器向客户端发送 ...