怎样删除存在主外键关系的数据,怎样编写SQL语句
推荐于2018-04-22
展开全部
如果你的表里面 使用了级联关系 你删除主表时 子表也就删除了。 如果咩有的话 你只能写where语句比较了之前如果有级联关系(级联关系:主键执行的操作同时影响外键)的话,只需要运行delete 列名 from 表名 where 约束条件
2013-09-13
展开全部
最保险的方法就是根据主外键,先从子表中删除,然后再把主表的记录删除
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-09-13
展开全部
use master
go
if exists(select * from sysdatabases where name = 'Test')
drop database Test
go
create database Test
on primary
(
name = 'Test_data.mdf',--数据库主文件名
filename = 'E:\Test_data.mdf',--数据库主文件存放位置
size = 3mb,--数据库主文件初始大小为3m
maxsize = 10mb,--数据库主文件最大为10m,可省略
filegrowth = 1mb --文件超过3mb,以1m大小增长
)
log on
(
name = 'Test_data.ldf',--数据库日志文件名
filename = 'E:\Test_data.ldf',--数据库日志文件存放位置
size = 1mb,--数据库日志文件初始大小为1mb,可省略
maxsize = 4mb,--数据库日志文件最大为4mb
filegrowth = 10%--数据库日志文件超过4mb,以10%大小增长
)
go
if exists(select * from sysobjects where name = 'Users')
drop table Users
go
create table Users
(
Id int primary key identity(1,1),
name varchar(20) not null
)
go
if exists(select * from sysobjects where name = 'Schedules')
drop table schedules
go
create table Schedules
(
Id int primary key identity(1,1),
Uid int foreign key references Users(Id),
name varchar(20) not null
)
go
insert into Users(Name) values ('L.S.');
insert into Users(Name) values ('R.S.');
insert into Schedules(Uid,name) values(1,'常规会议');
insert into Schedules(Uid,name) values(1,'项目展示');
insert into Schedules(Uid,name) values(2,'常规会议');
insert into Schedules(Uid,name) values(2,'项目展示');
select * from Users
select * from Schedules
--这个时候想删除用户(Users)表L.S.这条信息,就必须先删除计划(Schedules)表中L.S.的相关信息。
delete from Schedules where Uid = (select Id from Users where name = 'L.S.')
delete from Users where name = 'L.S.'
select * from Users
select * from Schedules
go
if exists(select * from sysdatabases where name = 'Test')
drop database Test
go
create database Test
on primary
(
name = 'Test_data.mdf',--数据库主文件名
filename = 'E:\Test_data.mdf',--数据库主文件存放位置
size = 3mb,--数据库主文件初始大小为3m
maxsize = 10mb,--数据库主文件最大为10m,可省略
filegrowth = 1mb --文件超过3mb,以1m大小增长
)
log on
(
name = 'Test_data.ldf',--数据库日志文件名
filename = 'E:\Test_data.ldf',--数据库日志文件存放位置
size = 1mb,--数据库日志文件初始大小为1mb,可省略
maxsize = 4mb,--数据库日志文件最大为4mb
filegrowth = 10%--数据库日志文件超过4mb,以10%大小增长
)
go
if exists(select * from sysobjects where name = 'Users')
drop table Users
go
create table Users
(
Id int primary key identity(1,1),
name varchar(20) not null
)
go
if exists(select * from sysobjects where name = 'Schedules')
drop table schedules
go
create table Schedules
(
Id int primary key identity(1,1),
Uid int foreign key references Users(Id),
name varchar(20) not null
)
go
insert into Users(Name) values ('L.S.');
insert into Users(Name) values ('R.S.');
insert into Schedules(Uid,name) values(1,'常规会议');
insert into Schedules(Uid,name) values(1,'项目展示');
insert into Schedules(Uid,name) values(2,'常规会议');
insert into Schedules(Uid,name) values(2,'项目展示');
select * from Users
select * from Schedules
--这个时候想删除用户(Users)表L.S.这条信息,就必须先删除计划(Schedules)表中L.S.的相关信息。
delete from Schedules where Uid = (select Id from Users where name = 'L.S.')
delete from Users where name = 'L.S.'
select * from Users
select * from Schedules
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询