--在創建表時就可以對字段加上約束:
create table Student
(
StudentNo int PRIMARY KEY IDENTITY(1,1), --加主鍵約束,還有標識列屬性(兩者構成實體完整性)
StudentName nvarchar(15) not null, --加非空約束,不加"not null" 默認為:可以為空
StudentSchool text(20) FOREIGN KEY REFERENCES SchoolTable(SchoolName), --加外鍵約束,格式:FOREIGN KEY REFERENCES 關聯的表名(字段名)
StudentAge int DEFAULT ((0)), --加默認值約束
StudentSex nvarchar(2) CHECK(StudentSex=N'男' or StudentSex=N'女') --加檢查約束,格式:check (條件表達式)
)
--如果在表創建好了以後再加約束,則格式分別為:
-- 主鍵:
alter table 表名
add constraint PK_字段名--"PK"為主鍵的縮寫,字段名為要在其上創建主鍵的字段名,'PK_字段名'就為約束名
primary key (字段名) --字段名同上
--唯壹約束:
alter table 表名
add constraint UQ_字段名
unique (字段名)
--外鍵約束:
alter table 表名
add constraint FK_字段名--"FK"為外鍵的縮寫
foreign key (字段名) references 關聯的表名(關聯的字段名) --註意'關聯的表名'和'關聯的字段名'
alter table 表A add constraint FK_B foreign key (ticket_no) references 表B(ticket_no)
alter table 表A add constraint FK_C foreign key (person_no) references 表C(person_no)
alter table 成績表 add constraint FK_StudentNo foreign key (StudentNo) references Student (StudentNo)
ON UPDATE CASCADE ON DELETE CASCADE
級聯更新,級聯刪除,這樣在刪除主表Student時,成績表中該學生的所有成績都會刪除。
--檢查約束:
alter table 表名
add constraint CK_字段名
check (條件表達式) --條件表達式中的條件用關系運算符連接
--默認值約束:
alter table 表名
add constraint DF_字段名
default '默認值' for 字段名--其中的'默認值'為妳想要默認的值,註意'for'
--刪除創建的約束:
alter table 表名
drop constraint 約束名--約束名為妳前面創建的如:PK_字段這樣的約束名
--註意:如果約束是在創建表的時候創建的,則不能用命令刪除
--只能在'企業管理器'裏面刪除
參考資料 : /news/92.html
希望以上的回答能夠幫到妳