我试图删除与问题表和关系表中的测验ID匹配的所有记录.该查询适用于select语句,但不允许删除相同的语句.
@quizId是我传递到我的存储过程的测验ID值.有谁知道如何使用一个语句从两个表中删除?可能吗?
DELETE tGeoQuestions as a, tGeoQuizToQuestion as b WHERE b.quizId = @quizId AND a.id = b.questionid
Run Code Online (Sandbox Code Playgroud)
您需要启用级联删除然后它会自动发生,您只需要从PK中删除表,所有fk表将自动删除
否则它是一个两步操作
像这样的东西,把它放在一个tran
DELETE a
FROM tGeoQuestions as a
JOIN tGeoQuizToQuestion as b
ON a.id = b.questionid
AND b.quizId = @quizId
DELETE tGeoQuizToQuestion WHERE quizId = @quizId
Run Code Online (Sandbox Code Playgroud)
你的第三个选项是PK表上的触发器,如果它在PK表中被删除,它将删除FK表中的所有内容...我不推荐触发器