2013-12-23 50 views
0

我創建了一個用分頁進行搜索的存儲過程,但搜索無法正常工作。你能告訴我在這個存儲過程中我做錯了什麼嗎?搜索在存儲過程中無法正常工作

ALTER PRocedure [dbo].[uspGetAddressByClientAndCode]   
    @PageIndex INT = 1,   
    @PageSize INT = 10,   
    @ClientId int,   
    @clientName varchar(40)= null,   
    @Code varchar(2)=null,   
    @RecordCount INT OUTPUT   
AS   
BEGIN   
    SET NOCOUNT ON;   

    SELECT * FROM (  
     SELECT ROW_NUMBER() OVER (ORDER BY AD.[CLIENTID] DESC) AS RowNumber 
     ,AD.[NAME]   
     ,AD.[ADDR]   
     ,AD.[CITY]   
     ,AD.[STPROV]   
     ,AD.[ZIPPOSTAL]   
     ,AD.[COUNTRY]   
     ,AD.[ZONE]   
     ,AD.[CLIENTID]   
     ,CL.BCLIENT   
     ,AD.ADDRESSID   
    FROM 
     [Address] Ad   
    INNER JOIN 
     client CL ON CL.CLIENTID = AD.[CLIENTID]   
    WHERE    
     AD.CLIENTID = @ClientId   
     AND (AD.NAME IS NULL OR AD.NAME Like @clientName +'%')   
     AND (AD.code IS NULL OR AD.code = @Code) 
) As PageTable   
WHERE 
    RowNumber BETWEEN (@PageIndex -1) * @PageSize + 1 AND (((@PageIndex -1) * @PageSize + 1) + @PageSize) - 1   
END 

回答

0

即使目前還不清楚爲什麼這個存儲過程都不能正常工作我你必須改變WHERE子句這樣的:

WHERE    
     AD.CLIENTID = @ClientId   
     AND (@clientName IS NULL OR AD.NAME Like @clientName +'%')   
     AND (@Code IS NULL OR AD.code = @Code) 
+0

我用之前,但沒有得到結果:( – Abhishek

+0

您是否試圖只執行派生表(SELECT ... FROM ... WHERE)以查看此查詢是否返回結果?也許用於調用SP的頁碼太高,SP未返回任何結果因爲這個原因。 –

相關問題