[英]Regarding query in stored procedure
我必須創建一個存儲過程,該存儲過程的輸入將是“課程ID”和“學生ID”。 該存儲過程將檢查學生是否已注冊該課程。 如果已經注冊了該學生,則顯示一條消息“該學生已被注冊”。
下面是我嘗試過的。 沒有得到預期的結果。 我有的表:
這就是我嘗試過的
CREATE PROCEDURE Clk (@CourseId AS INTEGER, @StudentId AS VARCHAR) AS
DECLARE @stud INTEGER
SELECT @stud = (select Count(enrollmentId) from CourseEnrollment
where StudentId = @StudentId and CourseId = @CourseId )
if @stud > 0
BEGIN
print 'The student is already enrolled'
END
else
BEGIN
print 'nope'
END
編輯:
我現在開始工作了。 創建存儲過程時,我給了錯誤的數據類型。
在過濾記錄時,您沒有考慮CourseId。 您的查詢:
SELECT @stud = (select Count(enrollmentId)
from CourseEnrollment
where StudentId = @StudentId )
如果您已經通過了說給學生xyz的課程1,並且xyz已經注冊了課程2,則您的查詢將給出結果為1,即使他沒有被課程1錄取,您也會說他也已經注冊了課程。
嘗試類似:
IF EXISTS (SELECT CourseId
FROM courseEnrollment
WHERE StudentId = @StudentId
AND CourseId = @CourseId) THEN
print 'The student is already enrolled'
ELSE
print 'The student has not enrolled'
END IF;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.