(五)添加、删除约束

     大家好,今天给大家分享下SQL Server相关知识,本教程内容全部由本人亲测有效才放出来,网友们可以自己在本地自行练习。写此教程的目的也是希望可以加深自己对数据库操作语句的理解,同时也帮助到初学者,这里主要以代码的形式帮助大家动手练习,全文没有过多言语,也是为了简化大家对文字阅读的繁琐,最后希望能帮助到大家,喜欢就点个赞+关注,欢迎一起学习交流! 

--添加新列、约束
alter table classes 
     add number varchar(20) null constraint no_uk unique;   --添加唯一约束:constraint no_uk unique 
--增加主键:primary key 
alter table classes 
     add constraint pk_id primary key(id);		 
--添加外键:foreign key ...references 		 
alter table classes 
     add constraint fk_cid foreign key(cid) references classes(id)  
go 							
--添加唯一约束
alter table classes 
		 add constraint name_uk unique(name);
--添加CHECK约束
alter table classes with nocheck 		 
     add constraint check_age check(age>1);
alter table classes 
     add constraint ck_age check(age>=15 and age<=50)
--添加默认约束	
alter table classes 
     add constraint sex_def default 1 for sex;
--添加一个包含默认值可以为空的列
alter table classes 
     add createDate smalldatetime null 
		 constraint createDate_def default getDate() with values;
									 
									 
-----多个列、约束一起创建-----	
alter table classes add 
     /*添加id主键、自增*/								 
		 id int identity constraint id primary key,
		 /*添加外键约束*/
		 number int null 
		 constraint uNumber references classes(number),
		 /*默认约束*/
		 createDate decimal(3,3)
		 constraint createDate default 2025-02-14
go 

--删除约束
alter table classes drop constraint no_uk;		 

### 如何使用 ALTER TABLE 语句添加删除主键约束SQL Server 中,`ALTER TABLE` 语句用于修改现有的表结构。以下是如何通过 `ALTER TABLE` 语句来添加删除主键约束的详细说明。 #### 添加主键约束 要为表中的列添加主键约束,可以使用以下语法: ```sql ALTER TABLE table_name ADD CONSTRAINT constraint_name PRIMARY KEY (column_name); ``` - `table_name` 是需要添加主键约束的表的名称。 - `constraint_name` 是主键约束的名称,建议为其提供一个有意义的名字以便于管理。 - `column_name` 是要设置为主键的列的名称。 例如,如果有一个名为 `Employees` 的表,并希望将 `EmployeeID` 列设置为主键,则可以执行以下命令: ```sql ALTER TABLE Employees ADD CONSTRAINT PK_EmployeeID PRIMARY KEY (EmployeeID); ``` 此操作会将 `EmployeeID` 列标记为主键[^1]。 #### 删除主键约束 删除主键约束的操作稍微复杂一些,因为需要知道主键约束的名称。以下是删除主键约束的语法: ```sql ALTER TABLE table_name DROP CONSTRAINT constraint_name; ``` - `table_name` 是包含主键约束的表的名称。 - `constraint_name` 是主键约束的名称。 例如,如果需要从 `Employees` 表中删除名为 `PK_EmployeeID` 的主键约束,则可以执行以下命令: ```sql ALTER TABLE Employees DROP CONSTRAINT PK_EmployeeID; ``` 需要注意的是,如果不知道主键约束的名称,可以通过查询系统视图 `INFORMATION_SCHEMA.TABLE_CONSTRAINTS` 或 `sys.objects` 来获取主键约束的名称[^2]。 例如,以下查询可以帮助找到特定表的主键约束名称: ```sql SELECT tc.CONSTRAINT_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc WHERE tc.TABLE_NAME = 'Employees' AND tc.CONSTRAINT_TYPE = 'PRIMARY KEY'; ``` #### 注意事项 - 主键列不能包含 NULL 值,并且必须保证唯一性[^1]。 - 如果尝试删除的主键被其他表的外键引用,则需要先删除或修改相关的外键约束[^2]。 ```sql ALTER TABLE referenced_table DROP FOREIGN KEY fk_constraint_name; ``` ### 示例代码 以下是一个完整的示例,展示如何添加删除主键约束: ```sql -- 添加主键约束 ALTER TABLE Employees ADD CONSTRAINT PK_EmployeeID PRIMARY KEY (EmployeeID); -- 查询主键约束名称 SELECT tc.CONSTRAINT_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc WHERE tc.TABLE_NAME = 'Employees' AND tc.CONSTRAINT_TYPE = 'PRIMARY KEY'; -- 删除主键约束 ALTER TABLE Employees DROP CONSTRAINT PK_EmployeeID; ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

code_6o1

感谢您的支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值