級聯刪除練習
--創建用戶表(主表) create table UserInfo ( UserId int identity(1,1) primary key , UserName varchar(20), --用戶名 password varchar(20) not null --密碼 ) --創建用戶詳情表(附表) create table UserDetails ( id int identity(1,1) primary key, name varchar(50) not null, --真實姓名 userId int --方法一: 創建用於級聯刪除的約束 --foreign key (userId) references UserInfo(UserId) on delete cascade ) --方法二:創建用於級聯刪除的約束 alter table UserDetails --約束對象UserDetails add constraint [FK_UserDetails_UserInfo] --添加約束,命名為FK_UserDetails_UserInfo foreign key(UserId) references UserInfo(UserId) -- UserDetails表的UserId列引用UserInfo表UserId列的值 on delete cascade --級聯刪除 --插入測試數據 insert UserInfo values ('ly','jeff') insert UserInfo values('wzq','wzqwzq') insert UserInfo values('lg','lglg') insert UserDetails values('李四',1) insert UserDetails values('王五',2) insert UserDetails values('劉六',3) --測試級聯刪除 --刪除 UserInfo 主表中UserID=1的同時刪除UserDetails從表中UserId=1 的內容 delete from userInfo where UserId=1 --刪除userDetails從表中UserId=1 對主表無影響 delete from userDetails where UserId=1 --刪除用於級聯刪除的約束 ALTER TABLE [dbo].[UserDetails] DROP CONSTRAINT [FK_UserDetails_UserInfo] --查詢 select *from UserInfo select *from UserDetails sqlserver 支持級聯刪除語法 alter table 外鍵表名稱 add constraint 約束名稱 Foreign Key(column[,...n]) references referenced_table_name[(ref_column[,...n])] [on delete cascade] 注釋 column:外鍵表的列名 referenced_table_name:外鍵參考的主鍵表名稱 ref_name:外鍵要參考的表的主鍵列 on delete:刪除級聯