如何drop有default constraint的column - SQL

简介:

有时候我们在drop column的时候,会遇到一些default constraints而不能drop,如果我们已经知道constraint name,则可以用下面的语句先把constraint remove掉,然后再drop column。

 

 
 
declare @sql nvarchar ( 1024 )
set @sql = N ' alter table [system] drop constraint DF_system_LastGraceDate '
exec sp_executesql @sql

 

 

如果我们不知道constraint name,我们可以先把他们找出来,然后再remove掉。

 

复制代码
ExpandedBlockStart.gif 代码
 
  
-- create alter table command as string and run it
declare @sql nvarchar ( 1024 )
set @sql = N ' alter table [system] drop constraint DF_system_LastGraceDate '
exec sp_executesql @sql


-- first define variables
declare @default sysname, @sql nvarchar ( max )

-- get name of default constraint
select @default = name
from sys.default_constraints
where parent_object_id = object_id ( ' TABLE_NAME ' )
AND type = ' D '
AND parent_column_id = (
select column_id
from sys.columns
where object_id = object_id ( ' TABLE_NAME ' )
and name = ' COLUMN_NAME '
)

-- create alter table command as string and run it
set @sql = N ' alter table TABLE_NAME drop constraint ' + @default
exec sp_executesql @sql
复制代码

 

 

 

 

  本文转自loose_went博客园博客,原文链接:http://www.cnblogs.com/michaelxu/archive/2010/04/15/1712510.html,如需转载请自行联系原作者

相关文章
|
7月前
|
SQL 测试技术 数据处理
软件测试|SQL DEFAULT约束怎么用?
软件测试|SQL DEFAULT约束怎么用?
64 0
|
7月前
|
SQL 存储 数据库
sql数据库中的 delete 与drop的区别
sql数据库中的 delete 与drop的区别
176 1
|
1月前
|
SQL 存储 关系型数据库
SQL的基本语法以及SQL语句的关键字的使用,SELECT、INSERT、UPDATE、DELETE、CREATE、ALTER、DROP等。
SQL的基本语法以及SQL语句的关键字的使用,SELECT、INSERT、UPDATE、DELETE、CREATE、ALTER、DROP等。
|
28天前
Cause: java.sql.SQLIntegrityConstraintViolationException: Column ‘id‘ in field list is ambiguous
Cause: java.sql.SQLIntegrityConstraintViolationException: Column ‘id‘ in field list is ambiguous
17 0
|
6月前
|
SQL 数据库
解决Incorrect string value: ‘\xE5\xBC\xA0\xE4\xB8\x89‘ for column ‘name‘ at row 1 SQL Statement的问题~
解决Incorrect string value: ‘\xE5\xBC\xA0\xE4\xB8\x89‘ for column ‘name‘ at row 1 SQL Statement的问题~
169 0
|
druid Java 数据库连接
java报错Error attempting to get column ‘XXX’ from result set. Cause: java.sql.怎么解决?
java报错Error attempting to get column ‘XXX’ from result set. Cause: java.sql.怎么解决?
1980 0
java报错Error attempting to get column ‘XXX’ from result set. Cause: java.sql.怎么解决?
|
10月前
|
SQL 存储 索引
详细了解SQL中delete,drop,truncate的区别和不同
详细了解SQL中delete,drop,truncate的区别和不同
174 1
Zp
|
SQL
在写左关联时SQL语句出现 Duplicate column name 'NAME'名字重复错误解决方法
在写左关联时SQL语句出现 Duplicate column name 'NAME'名字重复错误解决方法
Zp
362 0
|
SQL Oracle 关系型数据库
sql default默认
SQL DEFAULT Constraint on ALTER TABLE 如果在表已存在的情况下为 "City" 列创建 DEFAULT 约束,请使用下面的 SQL: MySQL: ALTER TABLE Persons ALTER City SET DEFAULT 'SANDNES' SQL Server / Oracle / MS Access: ALTER TABLE Persons ALTER COLUMN City SET DEFAULT 'SANDNES'
86 0
|
SQL Oracle 关系型数据库
sql default
sql default
63 0