sql server中如何撤销某列的约束,比如主键,默认值等等

时间:2022-04-10 01:24:00
现已建好create table dlt_creattable_eighth(id_p int not null primary key check(id_p>0),allname varchar(255) not null,address varchar(255),sex varchar(255),age int default'18')

我尝试撤销age的default约束:
alter table dlt_creattable_eighth
alter column age drop default

提示报错:在关键字 'default' 附近有语法错误。

又尝试这样:
alter table dlt_creattable_eighth
drop constraint age

提示报错:
服务器: 消息 3728,级别 16,状态 1,行 53
'age' 不是约束。
服务器: 消息 3727,级别 16,状态 1,行 53
未能除去约束。请参阅前面的错误信息。

7 个解决方案

#1


--找约束名然后
alter table tablename 
drop constraint constratintname

#2


alter table dlt_creattable_eighth drop constraint 约束名

#3


constratintname和约束名,这些东西在我的例子里面具体又是什么啊,呵呵?

#4


alter table 表名 drop constraint 约束名

#5


最好在创建表时设置好约束名:
create table dlt_creattable_eighth(
id_p int not null primary key constraint ck_id check(id_p>0),
allname varchar(255) not null,
address varchar(255),
sex varchar(255),
age int default'18')
go
alter table dlt_creattable_eighth drop ck_id
go
drop table dlt_creattable_eighth

#6


引用 3 楼 dlt135 的回复:
constratintname和约束名,这些东西在我的例子里面具体又是什么啊,呵呵?


系统自动会给它一个约束名,可以在表修改界面中到约束管理器里去找.

#7


引用楼主 dlt135 的回复:
现已建好create table dlt_creattable_eighth(id_p int not null primary key check(id_p>0),allname varchar(255) not null,address varchar(255),sex varchar(255),age int default'18')

我尝试撤销age的default约束:
alte……

语句就是这么个语句

--查出具体Default定义的名字
SELECT * FROM sys.objects WHERE type = 'D' AND object_id('dlt_creattable_eighth')
--删除
ALTER TABLE dlt_creattable_eighth DROP CONSTRAINT ???

#1


--找约束名然后
alter table tablename 
drop constraint constratintname

#2


alter table dlt_creattable_eighth drop constraint 约束名

#3


constratintname和约束名,这些东西在我的例子里面具体又是什么啊,呵呵?

#4


alter table 表名 drop constraint 约束名

#5


最好在创建表时设置好约束名:
create table dlt_creattable_eighth(
id_p int not null primary key constraint ck_id check(id_p>0),
allname varchar(255) not null,
address varchar(255),
sex varchar(255),
age int default'18')
go
alter table dlt_creattable_eighth drop ck_id
go
drop table dlt_creattable_eighth

#6


引用 3 楼 dlt135 的回复:
constratintname和约束名,这些东西在我的例子里面具体又是什么啊,呵呵?


系统自动会给它一个约束名,可以在表修改界面中到约束管理器里去找.

#7


引用楼主 dlt135 的回复:
现已建好create table dlt_creattable_eighth(id_p int not null primary key check(id_p>0),allname varchar(255) not null,address varchar(255),sex varchar(255),age int default'18')

我尝试撤销age的default约束:
alte……

语句就是这么个语句

--查出具体Default定义的名字
SELECT * FROM sys.objects WHERE type = 'D' AND object_id('dlt_creattable_eighth')
--删除
ALTER TABLE dlt_creattable_eighth DROP CONSTRAINT ???