我有一個包含多個問卷的數據庫,每個問卷都有相關的(多選)問題,每個問題都有相關的答案。循環在SQL存儲過程中不起作用
我正在嘗試創建一個存儲過程,它將刪除所有問題和僅包含調查問卷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 [email protected]
END
CLOSE questionCursor
-- this works fine, the questions are being deleted
DELETE FROM questions WHERE [email protected]
END
相關的問題被刪除,但相關答案不是,所以我做錯事在我的循環,是沒有人在那裏誰看到它是什麼?
在此先感謝
切換取回和刪除可能有幫助嗎? – Mr47 2013-02-08 15:27:52
你知道這不是正確的做法,對吧?您只需編寫一個刪除語句即可刪除答案,並將其加入要刪除的結果而不是使用遊標。 'DELETE FROM FROM FROM a answers a JOIN questions q on a.QuestionID = q.ID WHERE q.EnqueteID = @ EnqueteID' – cjk 2013-02-08 15:55:33