複数のアンケートを含むデータベースがあり、各アンケートには関連する (複数選択) 質問があり、各質問には関連する回答があります。
アンケートの ID のみを使用して、すべての質問と関連する回答を削除するストアド プロシージャを作成しようとしています。私のストアドプロシージャは次のようになります。
ALTER PROCEDURE [dbo].[DeleteQuestionnnaire]
@EnqueteID bigint
AS
BEGIN
SET NOCOUNT ON
DECLARE @QID bigint
DECLARE questionCursor CURSOR FOR
SELECT ID FROM questions WHERE EnqueteID = @EnqueteID
OPEN questionCursor;
FETCH questionCursor INTO @QID
WHILE(@@fetch_status=0)
BEGIN
-- this is not working correct, the related answers are NOT being deleted
FETCH questionCursor INTO @QID
DELETE FROM answers WHERE QuestionID=@QID
END
CLOSE questionCursor
-- this works fine, the questions are being deleted
DELETE FROM questions WHERE EnqueteID=@EnqueteID
END
関連する質問は削除されていますが、関連する回答は削除されていないため、ループで何か間違ったことをしています。それが何であるかを見ている人はいますか?
前もって感謝します