2013-09-10 2 views
0

알아낼 수없는 문제가 있습니다. SQL 명령을 사용하여 Server2에서 데이터를 검색하는 SSIS 패키지를 만들었습니다. 쿼리는 매우 간단하지만 조인의 뷰를 참조합니다. Server1에서 SSIS 패키지를 수동으로 실행하면 925 개의 행을 검색하여 Server1의 해당 테이블에 삽입합니다. 이 SSIS 패키지를 야간에 실행하도록 예약하면 문제가 발생합니다. 그것은 첫 번째 단계 (Server2에서 행 검색에 대비하여 Server1의 테이블을 잘라내 기)에서 성공하지만 테이블을 볼 때 0 행이 있습니다. 원하지 않는 결과를 얻는 뷰를 참조하는 조인을 제거하기 위해 쿼리를 수정하면 예정된 SSIS가 완벽하게 작동합니다.하지만 JOIN이 필요하기 때문에 내가 원한 결과가 아닐지라도 반환됩니다. VIEW없이 잘 작동하므로 사용 권한 문제가 될 수 있습니다. 내가 빠진 것이 있습니까? 도와 주셔서 감사합니다.SSIS가 0 행을 반환합니다.

다음 쿼리는 SSIS를 수동으로 실행할 경우에만 작동합니다. FilteredAccount는 뷰 입니다. 900 행 이상을 반환해야하며 수동으로 실행하면 에이전트를 통해 SSIS를 실행하면 0을 반환합니다. 내가 SSIS 패키지에 아래의 하나에 쿼리를 변경하고 예약하는 경우

SELECT B.epc_cosmid, A.consultant, A.region 
FROM Consultant2TC AS A JOIN FilteredAccount AS B ON A.consultant = B.epc_serviceconsultantidname 

, 그것은 잘 작동 :

SELECT A.consultant, A.region 
FROM Consultant2TC AS A 
+2

나는 에이전트에 대한 전문가가 아니지만 에이전트 작업이 실행되는 컨텍스트에 뷰에 액세스하는 데 필요한 권한이 있는지 확인합니다. –

+0

두 개의 FilteredAccount 개체가있을 가능성이 있습니까? 하나는 SQL 에이전트가 사용하는 계정의 기본 스키마에 있고 다른 하나는 기본 스키마에있는 계정입니다. – billinkc

+0

구성을 둘러싼 확실한 확신을 얻기 위해 다음으로 변경하십시오 : SELECT A.consultant, A.region, @@ servername as SN, db_name() as db, suser_sname() as uname FROM Consultant2TC'. 데이터가 어디에서 오는 것인지를 절대적으로 확신 할 수 있도록 테이블에로드하십시오. 동시에 뷰에서 직접로드를 추가하여 해당 시점의 뷰 상태를 확인할 수도 있습니다. –

답변

0

당신은 에이전트 작업에서 다른 결과와 자신의 로그인을 얻고 있기 때문에 찾고자하는 분명한 권한은 사용 권한입니다. 상담원의 자격 증명을 사용하여 로그인 한 상태에서 SSMS 에서 쿼리를 실행하면 어떤 결과가 나타 납니까?

관련 문제