如果你创建约束时没有命名,DB2 会基于创建时间戳来为其命名,比如 SQL100419222516560。
你可以在DB2 CLP里面找到它命名的约束名
db2 select constname, tabname, btype, bname,constraint-name from syscat.constdep
然后再根据
alter table tabname drop unique constraint-name
这个语句应该能删掉了吧,找约束名的那个我也没有试过,你试试看吧。
实在不行就只有删了表重建
Ⅱ SQL里面怎么去掉重复拿唯一值
selectvipcard,min(storecode),salesdayfrom表名groupbyvipcard,salesday
这样?
Ⅲ SQL语句删除唯一性约束
出现这种提示时,可改为sql语句删除即可,示例如下:
alter table tablename drop constraint 索引名称
Ⅳ 用SQL语句取唯一数据
如果是唯一数据的,肯定是有约束条件来确认结果的唯一性,肯定会用到where语句。
sql:select * from tablename where id ='10';
解释:如果id是主键或者是不重复字段,那么通过固定的id条件,就可以取出唯一数据。
Ⅳ 用sqlsever的查询器删除一个表中的姓名唯一性约束
alter table EMPLOYEE drop constraint 约束名;
如果你不知道这个唯一约束的名字,
可以插入一条相同的name值,查询分析器会报错,
下面有约束名,复制,然后再粘贴到上面的语句里。
Ⅵ sql怎么去掉指定字段唯一约束
1)禁止所有表约束的SQL
select'altertable'+name+'nocheckconstraintall'fromsysobjectswheretype='U'
2)删除所有表数据的SQL
select'TRUNCATETABLE'+namefromsysobjectswheretype='U'
3)恢复所有表约束的SQL
select'altertable'+name+'checkconstraintall'fromsysobjectswheretype='U'
4)删除某字段的约束
declare@namevarchar(100)
--DF为约束名称前缀
select@name=b.namefromsyscolumnsa,sysobjectsbwherea.id=object_id('表名')andb.id=a.cdefaultanda.name='字段名'andb.namelike'DF%'
--删除约束
altertable表名dropconstraint@name
--为字段添加新默认值和约束
ALTERTABLE表名ADDCONSTRAINT@nameDEFAULT(0)FOR[字段名]
--删除约束
ALTERTABLEtablename
DropCONSTRAINT约束名
--修改表中已经存在的列的属性(不包括约束,但可以为主键或递增或唯一)
ALTERTABLEtablename
altercolumn列名intnotnull
--添加列的约束
ALTERTABLEtablename
ADDCONSTRAINTDF_tablename_列名DEFAULT(0)FOR列名
--添加范围约束
altertabletablenameaddcheck(性别in('M','F'))