如何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掉。

 

复制代码
代码

   
   
-- 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,如需转载请自行联系原作者

相关文章
|
1月前
|
SQL 数据库 数据库管理
SQL DEFAULT
【11月更文挑战第16天】
30 2
|
5月前
|
SQL 关系型数据库 MySQL
ALTER TABLE 时的 SQL DEFAULT 约束
【7月更文挑战第20天】ALTER TABLE 时的 SQL DEFAULT 约束。
46 1
|
5月前
|
SQL Oracle 关系型数据库
SQL DEFAULT 约束
【7月更文挑战第20天】SQL DEFAULT 约束。
47 1
|
6月前
|
存储 SQL 关系型数据库
【BUG记录】Cause: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x90\xA6' for column 'name' at row 1
在MySQL中遇到`Incorrect string value`错误通常是因为尝试插入的字符串包含不被数据库字符集支持的字符,如表情符号。错误根源是MySQL默认的utf8不支持4字节的UTF-8字符(如Emoji)。
653 1
|
6月前
|
SQL Oracle 关系型数据库
SQL DEFAULT 约束
SQL DEFAULT 约束
49 6
|
6月前
|
SQL 弹性计算 分布式计算
实时数仓 Hologres操作报错合集之在执行SQL查询时遇到了问题,报错原因是“Invalid index column id: 2”,该怎么处理
在使用阿里云实时数仓Hologres时,可能会遇到不同类型的错误。例如:1.内存超限错误、2.字符串缓冲区扩大错误、3.分区导入错误、4.外部表访问错误、5.服务未开通或权限问题、6.数据类型范围错误,下面是一些常见错误案例及可能的原因与解决策略的概览。
### Cause: java.sql.SQLException: Field ‘id‘ doesn‘t have a default value; Field ‘id‘ doesn‘t have
### Cause: java.sql.SQLException: Field ‘id‘ doesn‘t have a default value; Field ‘id‘ doesn‘t have
|
5月前
|
SQL Java 数据库连接
Cause: java.sql.SQLException: Field ‘id‘ doesn‘t have a default value; Field ‘id‘ doesn‘t have a de
Cause: java.sql.SQLException: Field ‘id‘ doesn‘t have a default value; Field ‘id‘ doesn‘t have a de
|
7月前
|
SQL Oracle 关系型数据库
Oracle SQL*Plus的COLUMN命令:数据展示的“化妆师”
【4月更文挑战第19天】Oracle SQL*Plus的COLUMN命令是数据展示的利器,能美化和格式化输出。它可定制列标题、调整显示格式(如数字的小数位数和日期格式),添加前缀和后缀(如货币符号),以及控制列宽和是否折行,使得数据呈现更直观、专业。利用COLUMN命令,能将原始数据转化为易于理解和视觉吸引力强的展示形式。
|
7月前
Cause: java.sql.SQLIntegrityConstraintViolationException: Column ‘id‘ in field list is ambiguous
Cause: java.sql.SQLIntegrityConstraintViolationException: Column ‘id‘ in field list is ambiguous
179 0