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

刪除唯一約束的SQL語法

發布時間: 2022-06-20 08:21:55

A. 使用sql語句創建和刪除約束示例代碼

使用sql語句創建和刪除約束
約束類型
主鍵約束(Primary
Key
constraint)
--:要求主鍵列數據唯一,並且不允許為空。
唯一約束(Unique
constraint)
--:要求該列唯一,允許為空,但只能出現一個空值。
檢查約束(Check
constraint)
--:某列取值范圍限制,格式限制等,如有關年齡、郵箱(必須有@)的約束。
默認約束(Default
constraint)
--:某列的默認值,如在資料庫里有一項數據很多重復,可以設為默認值。
外鍵約束(Foreign
Key
constraint)
--:用於在兩個表之間建立關系,需要指定引用主表的哪一列。
**********************************************************************
添加約束:
alter
table
tablename
add
constraint
pk_colname
primary
key(colname)主建約束
alter
table
tablename
add
constraint
uq_colname
unique
(colname)唯一約束
alter
table
tablename
add
constraint
df_colname
default('地址不詳')for
colname
默認約束
alter
table
tablename
add
constraint
ck_colname
check(colname
between
12
and
15)檢查約束
alter
table
tablename
add
constraint
fk_colname
foreign
key(colname)references
tablename(colname)外建約束
刪除約束:
alter
table
tablename
drop
constraint
約束名
創建登陸帳戶/資料庫用戶
創建登錄帳戶:
exec
sp_grantlogin
'windows
域名/域帳戶'
創建資料庫用戶:
exec
sp_grantdbaccess
'登陸帳戶','資料庫用戶'
向資料庫授權:
grant
許可權[on
表名]to
資料庫用戶
以上語句可直接在企業管理器中操作
企業管理器/安全性/登陸/新建登陸
填寫名稱和密碼
選擇資料庫訪問,再底下"資料庫角色中允許"
db_owner也打上勾
默認約束使用戶能夠定義一個值,每當用戶沒有在某一列中輸入值時,則將所定義的值提供給這一列。如果用戶對此列沒有特定的要求,可以使用默認約束來為此列輸入默認值。

B. sql資料庫中怎麼刪除欄位的唯一約束

--刪除該約束
alter table [約束所在表] drop constraint XXXX

C. SQL中的幾種約束的創建與刪除

約束的目的就是確保表中的數據的完整性。
常用的約束類型如下:
主鍵約束:(Primary Key constraint) 要求主鍵列唯一,並且不允許為空
唯一約束:(Unique Constraint) 要求該列唯一,允許為空,但只能出現一個空值
檢查約束:(Check Constraint) 某列取值范圍限制、格式限制等。如有關年齡的限制
默認約束:(Default Constraint) 某列的默認值,如我們的男性學員比較多,性別默認為男
外鍵約束:(Foreign Key Constraint) 用於在兩表之間建立關系,需要指定引用主表的哪一列
一、添加約束
在創建表時,我們可以在欄位後添加各種約束,但一般不這樣混用,推薦將添加約束和建表的語句分開編寫。
添加約束的語法如下:
Code:
Alter Table 表名
Add Constraint 約束名 約束類型 具體的約束類型
上述語法標識修改某個表,添加某個約束,其中約束名的命名規則推薦採用"約束類型_約束欄位"這樣的形式。
Code:
---添加主鍵約束
Alter Table stuInfo
Add Constraint PK_stuNO primary Key(stuNo)
---添加唯一約束
Alter Table stuInfo
Add Constraint UQ_stuID unique(stuID)
---添加默認約束
Alter Table stuInfo
Add Constraint DF_stuAddress default('地址不詳') for stuAddress
---添加檢查約束
Alter Table stuInfo
Add Constraint CK_stuAge check(stuAge between 15 and 40)
---添加外鍵約束
Alter Table stuMarks
Add Constraint FK_stuNo foreign key(stuNo) references stuInfo(stuNo)
二、刪除約束
如果錯誤的添加了約束,則可以刪除約束
刪除約束的語法如下:
Code:
Alter Table 表名
Drop Constraint 約束名
附加:在創建表的時候同時添加約束的寫法:
Code:
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)
)

D. 刪除唯一性約束的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)

E. sql 約束語法

我把添加約束的語法告訴你,請你根據自己情況靈活使用。

--------添加主鍵約束(bookid作為主鍵)
alter table bookmessage
add constraint pk_bookid primary key(bookid)

--------添加唯一約束
alter table bookmessage
add constraint uq_bookid UNIQUE(bookid)

---------添加默認約束
alter table bookmessage
add constraint df_address DEFAUIT('地址不詳') for Address

--------添加檢出約束,要求年齡只能在15---40之間
alter table readermessage
add constraint CK_age CHECK(age BETWEEN 15 AND 40)

-------添加外鍵約束
alter table bookmessage
add constraint fk_bookid
foreign key(bookid)<外鍵> references readermessage<表>(readerid)<表中的主鍵>

-------刪除約束
alter table 表名
drop constraint 約束名

--
以上,希望對你有有所幫助。

F. 請教如何用SQL語句刪掉這個唯一約束,資料庫是DB2

查詢下系統編目表
select name
from
sysibm.sysindexes
where
tbname='tbl_deposit_revert_record
'
找到對應index名字,然後用
alter
table deposit.tbl_deposit_revert_record
drop
constraint
name,name為上面查詢出來的名字

G. SQL語句刪除唯一性約束

出現這種提示時,可改為sql語句刪除即可,示例如下:

alter table tablename drop constraint 索引名稱

H. SQL中沒有約束名,怎樣刪除約束

在sys.objects找到indexTable 的object_id,然後到sys.indexs中找到objects_id對應的約束id,刪除即可。

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

J. 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;