① sql語句刪除唯一性約束
出現這種提示時,可改為sql語句刪除即可,示例如下:
alter table tablename drop constraint 索引名稱
② 刪除唯一性約束的sql語句
--找出UNIQUE 約束所在的表
select o.name as [約束所在表],c.name as [關聯欄位]
from sys.objects o join sys.foreign_key_columns f on o.object_id=f.parent_object_id
join sys.columns c on o.object_id=c.object_id
where f.referenced_object_id=object_id('你的表名')
--查找約束名字
exec sp_helpconstraint [約束所在表]
--刪除該約束
alter table [約束所在表] drop constraint XXXX
--最後刪除你的索引
drop index stu_limit_table.sub_number_unique on tbname(column)
③ oracle刪除唯一約束sql語句
假如有主表 test_main 與 子表 test_sub
SQL> -- 創建外鍵(默認選項)
SQL> ALTER TABLE test_sub ADD CONSTRAINT main_id_cons FOREIGN KEY (main_id) REFERENCES test_main;
Table altered.
刪除外鍵約束
ALTER TABLE test_sub DROP CONSTRAINT main_id_cons;
④ 用sqlsever的查詢器刪除一個表中的姓名唯一性約束
alter table EMPLOYEE drop constraint 約束名;
如果你不知道這個唯一約束的名字,
可以插入一條相同的name值,查詢分析器會報錯,
下面有約束名,復制,然後再粘貼到上面的語句里。
⑤ 怎麼取消欄位唯一性約束
1)禁止所有表約束的SQL
select 'alter table '+name+' nocheck constraint all' from sysobjects where type='U'
2)刪除所有表數據的SQL
select 'TRUNCATE TABLE '+name from sysobjects where type='U'
3)恢復所有表約束的SQL
select 'alter table '+name+' check constraint all' from sysobjects where type='U'
4)刪除某欄位的約束
declare @name varchar(100)
--DF為約束名稱前綴
select @name=b.name from syscolumns a,sysobjects b where a.id=object_id('表名') and b.id=a.cdefault and a.name='欄位名' and b.name like 'DF%'
--刪除約束
alter table 表名 drop constraint @name
--為欄位添加新默認值和約束
ALTER TABLE 表名 ADD CONSTRAINT @name DEFAULT (0) FOR [欄位名]
--刪除約束
ALTER TABLE tablename
Drop CONSTRAINT 約束名
--修改表中已經存在的列的屬性(不包括約束,但可以為主鍵或遞增或唯一)
ALTER TABLE tablename
alter column 列名 int not null
--添加列的約束
ALTER TABLE tablename
ADD CONSTRAINT DF_tablename_列名 DEFAULT(0) FOR 列名
--添加范圍約束
alter table tablename add check(性別 in ('M','F'))
--刪除該約束
alter table [約束所在表] drop constraint XXXX
⑦ 如何用sql語句刪除默認約束
declare@constraintNamevarchar(200)
select@constraintName=b.namefromsyscolumnsa,sysobjectsbwherea.id=object_id('TB_KYSubProject')andb.id=a.cdefaultanda.name='Final_Belong_Programme'andb.namelike'DF%'
SELECT@constraintName
exec('altertableTB_KYSubProjectdropconstraint'+@constraintName)
注意:
1.sql中constraint 前綴PK、UK、DF、CK、FK:
PK是primary key縮寫,主鍵約束
UK是unique key縮寫,唯一約束
CK是check縮寫,檢查約束
FK是foreign縮寫,主外鍵關系
DF是default縮寫,默認值約束
2.syscolumns
cdefault:int該列的默認值 ID。
id:int該列所屬的表對象 ID,或與該參數關聯的存儲過程 ID。
name:sysname列名或過程參數的名稱。
3.object_id函數
該函數會返回指定對象的ID值
⑧ 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'))
⑨ 如何刪除unique唯一約束
drop index `name` on test;
刪除這個唯一索引就可以了
祝你愉快,滿意請採納哦
⑩ 請教如何用SQL語句刪掉這個唯一約束,資料庫是DB2
如果你創建約束時沒有命名,DB2 會基於創建時間戳來為其命名,比如 SQL100419222516560。
你可以在DB2 CLP裡面找到它命名的約束名
db2 select constname, tabname, btype, bname,constraint-name from syscat.constdep
然後再根據
alter table tabname drop unique constraint-name
這個語句應該能刪掉了吧,找約束名的那個我也沒有試過,你試試看吧。
實在不行就只有刪了表重建