當前位置:首頁 » 編程語言 » sql刪除唯一約束
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql刪除唯一約束

發布時間: 2022-01-17 21:50:56

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'))

⑥ sql資料庫怎麼刪除欄位的唯一約束

--刪除該約束
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
這個語句應該能刪掉了吧,找約束名的那個我也沒有試過,你試試看吧。
實在不行就只有刪了表重建