2010-03-01 3 views
1

http://www.stumbleupon.com/이 정보를 SQL Server 2008로 전달하는 방법은 무엇입니까?

관심 분야가 무엇인지 묻습니다.

나는 이와 같은 동일하지 않은 블록을 4 개 필요로한다는 점을 제외하고는 내 웹 사이트에서 비슷한 점이 있습니다. 사용자가 섹션에서 아무 것도 선택하지 않으면 해당 섹션을 선택했음을 의미합니다. 이 블록 중 1 개에는 약 10 개의 옵션이 있고 나머지 3 개에는 2-3 개의 옵션이 각각 있습니다.

모든 사용자가 SQL Server 2008에서 선택한 것을 어떻게 전달합니까? 필자는 4 세트의 다중 매개 변수가 있음을 주목하십시오.이 4 세트는 기본적으로 행에 4 개의 다른 열이 포함되어 있으며 모두 정수 ID를 포함합니다. 섹션 당 하나의 매개 변수가 전달 된 경우에만

select * 테이블에서 column1 = @ param1, column2 = @ param2 등의 선택을했을 것입니다.

하지만 사용자가 @ param1에 대해 여러 값을 전달할 수 있기 때문에 그렇지 않습니다.

이 작업을 수행 할 수 있지만 가장 효율적인 방법을 알고 싶습니다.

내 게시물이 명확하지 않으면 알려주십시오.

EDIT : 기본적으로 데이터베이스에 기사를 저장하는 경우 각 행에 4 개의 열이 있습니다. 그리고이 4 개의 열을 기반으로 이러한 기사를 쿼리하려고하지만 catch는 이러한 열의 여러 값을 열 하나당 하나의 값으로 전달하는 것이 아닙니다.

답변

1

, 당신은 테이블 값 매개 변수로 표시되어야합니다

: 당신이 그를 사용할 수없는 경우, TSQL에 배열과리스트에 하나 들여다

http://www.sqlteam.com/article/sql-server-2008-table-valued-parameters

: http://www.sommarskog.se/arrays-in-sql.html

이 TSQL에서 동적 검색 조건의 매우 포괄적 인 목록입니다 http://www.sommarskog.se/dyn-search.html

이 또한 도움이 될 수

Sane/fast method to pass variable parameter lists to SqlServer2008 stored procedure

0

모든 매개 변수 값을 XML로 덤프 한 다음 SQL Server로 전달한 다음 쿼리에서 구문 분석하십시오. 클라이언트 언어가 지원하는 경우

0

윌하지이 경우 이러한 쿼리를 사용할 수 있습니까?

SELECT * 
FROM TABLE 
WHERE COLUMN1 IN (@param11, @param12, @param13) 
     AND COLUMN2 IN (@param21, @param22, @param23) 

등등.

관련 문제