如果你創建約束時沒有命名,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'))