2016-09-20 2 views
0

Execute sql taskScript task.을 사용하는 SSIS 패키지를 생성 중입니다.이 패키지는 매개 변수를 기반으로 테이블 내용을 표시합니다.Execute SQL 작업의 매개 변수에 여러 값 지정 --SSIS

은 내가 실행-SQL 작업 나는 parameter에 값 316, 324을 할당하고 결과 세트를 채울 필요가

Select * from Production.Product Where ProductID in (316,324) 

에 쿼리 아래 주었다. p로 여러 값을 지정하는 방법 arameter variable? 당신이 당신의 CSV 목록에 2000 미만의 값이있는 경우

답변

1

도와주세요 - 당신이 값 316, 324 다음과 같은 식으로 또 다른 문자열 변수 SQL_Select와 변수에 Params를 문자열을 만들 수 있습니다에서

"Select * from Production.Product Where ProductID in ("[email protected][User::Params]+")" 

당신의 변수를 쿼리 소스로 선택하고 User :: SQL_Select를 소스로 정의하십시오. 표현식은 사용자가 액세스 할 때 평가되며 select 문을 생성합니다.

+0

고마워해야 할 것이다. 하지만 csv list가 2000 개가 넘으면 어떻게되는지 궁금합니다. 그것은 ssis의 한계입니까? – bmsqldev

+0

@bmsqldev는 MS SQL의 제한 사항입니다. 그것은 2100 개 이상의 매개 변수를 처리 할 수 ​​있습니다. 즉, SELECT 쿼리에서 2099 개 이상의 상수 또는 값을 가질 수 없으며 1 개의 매개 변수는 쿼리 텍스트 자체입니다. 대답에서 2000로 대략 축소했습니다. – Ferdipux

+0

감사합니다 ferdipux. 그것은 작동한다. – bmsqldev

1
DECLARE @String nvarchar(Max),@ProductID varchar(25) 

SET @productID ='316,324' 

SET @String='' 
SET @String='Select * from Production.Product Where ProductID in ('[email protected]+') ' 
Print @String 
EXECUTE (@String) 
+0

감사합니다. 나는 이것을 – bmsqldev

관련 문제