計數記錄我爲計數過濾的搜索記錄的存儲過程(見下面)從過濾的搜索
但是,如果我做了場「academiejaar」過濾的搜索存儲過程(學年)和'studierichting'(當然),我得到一個錯誤的數字。
這是我的存儲過程:
@voornaam nvarchar(50) = null,
@naam varchar(50) = null,
@studierichting varchar(50) = null,
@academiejaar varchar(9) = null,
@gastinstelling nvarchar(100) = null,
@periode varchar(50) = null,
@recordCount int = NULL OUTPUT
AS
IF (@recordCount IS NOT NULL)
BEGIN
SET @recordCount = (SELECT
COUNT(*) FROM Studenten
INNER JOIN Curriculum
ON Studenten.id=Curriculum.studentid
INNER JOIN erasmus
ON Studenten.id=erasmus.studentid
WHERE
([studenten].voornaam LIKE '%' + @voornaam + '%' OR @voornaam IS NULL)
AND ([studenten].naam LIKE '%' + @naam + '%' OR @naam IS NULL)
AND ([erasmus].academiejaar = @academiejaar OR @academiejaar IS NULL)
AND ([erasmus].gastinstelling LIKE '%' + @gastinstelling + '%' OR @gastinstelling IS NULL)
AND ([erasmus].periode = @periode OR @periode IS NULL)
AND ([curriculum].studierichting_vorig LIKE '%' + @studierichting + '%' OR @studierichting IS NULL))
RETURN
END
我是從這個存儲過程取回計數是非常高的。我得到39的recordCount,而它應該是8
有沒有人在這個sql查詢中看到一個錯誤?
感謝您的幫助,
安東尼 比利時
嗨約傑什,感謝您的幫助,我想你的代碼,如果我在SQL Server Management Studio中執行存儲過程,我得到記錄的確切數目,8:使用[erasmusmanager] GO DECLARE \t @return_value INT, \t \t @recordCount INT EXEC \t @return_value = [DBO] [sprocStudentSearchList] 01。\t @studierichting = N'sociologie ' \t \t @academiejaar = N'2011-2012' , \t \t @recordCount = @recordCount OUTPUT SELECT \t @recordCount如N '@的RecordCount' SELECT \t' 返回值'= @return_value 但是,如果在我的web應用程序中,記錄數仍然是39.有點讓我瘋了! Anthony – Toontje
如果存儲過程在SSMS中給出的確切結果比在應用程序中給出相同的結果。你能提供你的應用程序代碼獲取這個商店程序的結果嗎? –