如何用SQL语句删除check约束
创建时的语句如下:createtablestudent2(Snochar(9)primarykey,Snamechar(8)notnull,Ssexchar(2)chec...
创建时的语句如下:
create table student2
(Sno char(9) primary key,
Sname char(8) not null,
Ssex char(2) check(Ssex in ('男','女')),
Sage smallint,
Sdept char(20)
)
lsg0012的方法没有效果啊, 齐齐飞飞和an1ju能不能再介绍得清楚点呢?因为我的check那里没有约束名啊!
另外,我用的SQL Server 2000 展开
create table student2
(Sno char(9) primary key,
Sname char(8) not null,
Ssex char(2) check(Ssex in ('男','女')),
Sage smallint,
Sdept char(20)
)
lsg0012的方法没有效果啊, 齐齐飞飞和an1ju能不能再介绍得清楚点呢?因为我的check那里没有约束名啊!
另外,我用的SQL Server 2000 展开
6个回答
展开全部
1、创建测试表,带主键约束;
create table student2
(Sno char(9) primary key,
Sname char(8) not null,
Ssex char(2) check(Ssex in ('男','女')),
Sage smallint,
Sdept char(20)
)
2、右击表名,点击‘编辑’选项,
3、选择‘键’TAB,并点击右侧删除按钮;
4、即可将主键约束删除;
-- Drop primary, unique and foreign key constraints
alter table STUDENT2
drop constraint SYS_C0018602 cascade;
推荐于2017-09-23 · 知道合伙人数码行家
可以叫我表哥
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:25897
获赞数:1464984
2010年毕业于北京化工大学北方学院计算机科学与技术专业毕业,学士学位,工程电子技术行业4年从业经验。
向TA提问 私信TA
关注
展开全部
删除约束的语法如下:
Alter Table 表名
Drop Constraint 约束名
附加:在创建表的时候同时添加约束的写法:
use stuDB
go
if exists(select * from Sysobjects where name = 'stuInfo')
drop table stuInfo
go
create table stuInfo
(
stuName varchar(20) not null primary key(stuName)
,stuID int not null unique(stuID)
,stuAddress varchar(20) not null default('地址不详')
,stuAge int not null check(stuAge between 15 and 40)
)
Alter Table 表名
Drop Constraint 约束名
附加:在创建表的时候同时添加约束的写法:
use stuDB
go
if exists(select * from Sysobjects where name = 'stuInfo')
drop table stuInfo
go
create table stuInfo
(
stuName varchar(20) not null primary key(stuName)
,stuID int not null unique(stuID)
,stuAddress varchar(20) not null default('地址不详')
,stuAge int not null check(stuAge between 15 and 40)
)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在查询分析器里边执行
alter table 表名
drop constraint 约束名
查看表的约束名执行
sp_helpconstraint 表名
第二个结果集就列出了表的约束,constraint_name就是约束名
或者执行
sp_help 表名
一般第三个结果集中constraint_name就表示相应的约束名。
alter table 表名
drop constraint 约束名
查看表的约束名执行
sp_helpconstraint 表名
第二个结果集就列出了表的约束,constraint_name就是约束名
或者执行
sp_help 表名
一般第三个结果集中constraint_name就表示相应的约束名。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这里我给一个方法
注意一个前提,要删除约束,必须要知道它的约束名
首先你这里的CHECK没有约束名,这表示系统会自动给你生成一个约束名,所以你首先要查找这个约束名,可以用
sp_help student2
这个语句可以查看student2 表的所有属性,当然也包括约束名
然后就可以执行删除操作了
Alter table student2
drop constraint (约束名)
试试看吧
注意一个前提,要删除约束,必须要知道它的约束名
首先你这里的CHECK没有约束名,这表示系统会自动给你生成一个约束名,所以你首先要查找这个约束名,可以用
sp_help student2
这个语句可以查看student2 表的所有属性,当然也包括约束名
然后就可以执行删除操作了
Alter table student2
drop constraint (约束名)
试试看吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
CHECK 约束
[CONSTRAINT <constraint name>] CHECK (<condition> )
这 里CHECK子句中的CONDITION应该求值为一个布尔值结果,并且可以引用相同行中其他列的值;不能包含子查询,序列,环境函数(SYSDATE, UID,USER,USERENV)和伪列(ROWNUM,LEVEL,CURRVAL,NEXTVAL),一个列上可以定义多个CHECK约束,如果所 定义的条件为FALSE,则语句将回滚.
CREATE TABLE employees
(...,
salary NUMBER(8,2) CONSTRAINT emp_salary_min CHECK (salary>0),
...);
删除方式:
Alter table student2 drop(constraint "Ssex" check(约束名))
[CONSTRAINT <constraint name>] CHECK (<condition> )
这 里CHECK子句中的CONDITION应该求值为一个布尔值结果,并且可以引用相同行中其他列的值;不能包含子查询,序列,环境函数(SYSDATE, UID,USER,USERENV)和伪列(ROWNUM,LEVEL,CURRVAL,NEXTVAL),一个列上可以定义多个CHECK约束,如果所 定义的条件为FALSE,则语句将回滚.
CREATE TABLE employees
(...,
salary NUMBER(8,2) CONSTRAINT emp_salary_min CHECK (salary>0),
...);
删除方式:
Alter table student2 drop(constraint "Ssex" check(约束名))
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询