sql - DELETE 语句与 SQL 存储过程中的引用约束冲突
问题描述
我的 Employee 表的主键列是 ( EmpID
),它在两个 Other 表
EmployeeEducation
table 和EmployeeBankInformation
table 中引用。
我想根据他们的 ID 删除员工,但是当我运行存储过程时,我的控制器会抛出由于EmpID
列而导致外键引用约束冲突的错误。
ALTER PROCEDURE [dbo].[RemoveEmployee]
(
@EmpID int
)
AS
BEGIN
DELETE FROM Employee WHERE EmpID = @EmpID
DELETE FROM EmployeeEducation WHERE EmpID = @EmpID
DELETE FROM EmployeeBankInformation WHERE EmpID = @EmpID
END
我哪里错了?你们中的任何人都可以告诉我在我的程序中犯了什么错误吗?
解决方案
您非常接近,只需要最后删除员工:
ALTER PROCEDURE [dbo].[RemoveEmployee]
(
@EmpID int
)
AS
BEGIN
DELETE FROM EmployeeBankInformation WHERE EmpID = @EmpID
DELETE FROM EmployeeEducation WHERE EmpID = @EmpID
DELETE FROM Employee WHERE EmpID = @EmpID
END
推荐阅读
- vba - excel vba 如何从列号中获取整个列范围?
- git - 编辑变基/壁球提交消息时过滤重复项
- android - queryPurchaseHistoryAsync 订阅状态
- postgresql - 在 Odoo 中跟踪对 PostgreSQL 数据库表所做的更改
- php - 如何在 mysql 中合并 -all- 表?
- node.js - Mongoose 使用已修改的文档和基于它的标准进行更新
- wordpress - 谷歌标签管理器跟踪代码进入 Wordpress 标头
- java - 多个 SQLite 连接 - Java
- rest - 使用springboot的负载均衡机制
- javascript - React - 检查道具