SQL server 删除表的列
来源:互联网 发布:acfun. 的域名 编辑:程序博客网 时间:2024/04/29 13:43
如果这个表的这一列有默认值约束,那么如果直接删除就会报错
这里有两个办法
1.如果创建列的时候给默认约束设置了名字,直接删除该约束
如果是系统默认命名,那么就先获取默认约束名,
删除约束后,就可以直接删除列
--创建一个带默认值列alter table dbo.Studentadd test2 int not NULL default 0--尝试删除alter table dbo.Studentdrop column test2-- 报错-- 对象'DF__Student__test2__3A81B327' 依赖于 列'test2'。-- 消息 4922,级别 16,状态 9,第 1 行-- 由于一个或多个对象访问此列,ALTER TABLE DROP COLUMN test2 失败。-- 查询该表的所有信息sp_help 'dbo.Student'-- 找到约束后查询alter table dbo.Studentdrop column test2drop constraint DF__Student__test2__37A5467C-- 再次删除发现成功alter table dbo.Studentdrop column test2
2.上边的方法显然不方便
这里有一个脚本专门删除列的默认约束
--只要改两个参数declare @tablename varchar(100), @columnname varchar(100), @tab varchar(100)set @tablename = 'Student'--表名(不要加多余的东西)set @columnname= 'test2'--字段名称declare @defname varchar(100)--约束名称declare @cmd varchar(100)--构造的SQL语句select @defname = name from sysobjects so join sysconstraints sc on so.id = sc.constid where object_name(so.parent_obj) = @tablename and so.xtype = 'd' and sc.colid =(select colid from syscolumns where id = object_id(@tablename) and name = @columnname) select @cmd= 'alter table '+ @tablename+ ' drop constraint '+ @defname if @cmd is null print ' no default constraint to drop'exec (@cmd)
-- 直接删除列alter table dbo.Studentdrop column test2
0 0
- SQL server 删除表的列
- SQL Server添加列及删除列
- SQL Server添加列及删除列
- SQL Server数据库中使用sql脚本删除指定表的列
- SQL Server 查看列,添加列,修改列,删除列
- Sql Server 中如何删除列的identity属性
- SQL Server 如何使用命令修改表名或表的列名 和 删除表
- 删除Sql Server的表
- SQL Server使用触发器删除重复的列(Delete duplicate rows using cursor in SQL Server)
- Sql 增加,修改,删除 表的列
- SQL删除表中的指定的列
- Sql server 列更新,值来自于另一表的列
- sql server 2005 中数据库表 的创建 ,查看表 属性,表的名称重命名,情况表中信息,删除表 ; 表中列重命名,添加新列,修改列的数据类型,删除列,设置列的主键外键
- 添加列、删除列的sql
- sql server 删除表
- SQL Server 临时表的删除
- SQL Server 临时表的删除
- SQL Server 临时表的删除
- 【HPU 1191 Graphics 】+ DFS
- Maven中dependencies节点和dependencyManagement节点的区别
- Android照片墙完整版,完美结合LruCache和DiskLruCache
- expandablelistview详解
- gradle脚本入门
- SQL server 删除表的列
- java微信开发API解析(三)-高级功能的前奏----获取以及保存接口调用凭证 标签: 微信java办微信开发微信文档解析 2016-04-06 20:50 1101人阅读 评论(0) 收藏 举报
- js/jquery控制页面滑动到底部时自动加载事件
- java-API类的一些不常见功能
- Java IO浅析
- nodejs 事件循环(yiibai)
- think in UML读书笔记5 UML核心元素 用例
- Caused by: java.io.IOException: Target host must not be null, or set in parameters. scheme=null
- Android gradle: buildtoolsVersion vs compileSdkVersion