2012-06-18 4 views
1

상점 목록을 볼 때 저장 프로 시저를 사용하여 페이지 탐색을 만들고 있습니다. 하나의 테이블 과 Name & S_Id이 있습니다.저장 프로 시저를 사용하는 페이지 탐색 (합성 식별자를 바인딩 할 수 없음)

그리고 여기 내 쿼리입니다 :

SELECT Stores.Name 
    FROM 
     (
     SELECT ROW_NUMBER() OVER (ORDER BY Stores.S_Id) AS rownum , 
      Stores.Name 
     FROM Stores  
     )AS ordered 
    WHERE ordered.rownum BETWEEN [someValue] AND [someValue] 

하지만 내 절차를 저장하려고하면 오류 얻을 :

can not bind a composite identifier Stores.Name

내가 주제를 많이 보았다하지만 무슨 잘못 찾을 수 없습니다입니다. 데이터를 저장하기위한 - - ordered -

(select name from Stores order by S_Id).Skip(n).Take(m) . 
+0

정확한 오류 메시지를 보내는 도구/프로그램은 무엇입니까? –

답변

1

귀하의 하위 쿼리가 새 이름을 정의 그래서 당신은 그 새 이름 대신 stores 사용할 필요가 : 내가 LINQ와 함께 그 일을하면 이런 식으로 뭔가를 시도 할 것이다

SELECT 
    ordered.Name <=== you're selecting from the subquery which is called "ordered" - use that name!! 
FROM 
    (SELECT 
     ROW_NUMBER() OVER (ORDER BY Stores.S_Id) AS rownum, 
     Stores.Name 
    FROM Stores  
    ) AS ordered 
WHERE 
    ordered.rownum BETWEEN [someValue] AND [someValue]