2017-09-24 2 views
0

런타임에 연결 문자열에 대한 매개 변수를 정의하기 위해 환경 변수를 사용하려고합니다.SSIS 카탈로그 환경 변수

나는 some guides online을 따라하려고 시도했다. 이 문제에 지금

enter image description here

: 그래서 패키지의 매개 변수를 정의 가이드 작동
, 유일한 문제는 패키지가 실행될 때마다, 나는 수동으로 내가 원하는 환경 폴더를 선택해야한다는 것입니다 비록 내가 이미 패키지에서 그것을 사용했지만, 사용합니다.

enter image description here

SSIS는

어떻게이를 무시합니까 (하나만있는 경우에도)를 사용하는 환경을 알고 가정하지 않는 이유는 무엇입니까?

예약 된 작업을 사용할 수 있고 사용할 환경을 알았지 만 서비스와 절차를 통해 패키지를 실행하고 있기 때문에 유용하지 않습니다. 선택할 환경을 알려주는 방법이 필요합니다.

답변

1

환경을 위해 하나의 환경을 설정할 수 없습니다. 환경에 대한 아이디어는 실행 중에 어느 환경을 사용할지 선택하는 것입니다. 당신이 지적했듯이, 직업에서 그렇게 할 수 있습니다. 그렇다면 요원 직은 초 자연적 힘을 가지고 있다는 의미입니까? 내가 여기서 강조하고 싶은 무엇

/ISSERVER "\"\SSISDB\test\test1\Incremental.dtsx\"" /SERVER "\"DESKTOP-NT4K1HQ\"" 
/ENVREFERENCE 1 /Par "\"$ServerOption::LOGGING_LEVEL(Int16)\"";1 
/Par "\"$ServerOption::SYNCHRONIZED(Boolean)\"";True /CALLERINFO SQLAGENT /REPORTING E 

/ENVREFERENCE 1 매개 변수 : 아니요 스크립트 환경을 참조하는 패키지를 실행하는 단계로 작업을하는 경우, 당신은 잘 알고 dtexec를 명령, 예를 볼 수 있습니다 - 상담원 작업에서 선택할 환경을 아는 방법은 다음과 같습니다.

그래서 질문에 대한 답은 패키지를 실행하는 동안 항상 환경을 선택해야한다는 것입니다 (물론 원하는 경우). 카탈로그 절차의 경우에는 (this article 당) 같은 것을 할 것 : @reference_id = 1 사용자 환경 참조입니다

EXEC [SSISDB].[catalog].[create_execution] @package_name=N'Child1.dtsx', @[email protected]_id OUTPUT, @folder_name=N'TestDeply4', @project_name=N'Integration Services Project1', 
@use32bitruntime=False, 
@reference_id=1 

. 환경 ID를 찾으려면 [SSISDB].[catalog].[environments]보기를 쿼리해야합니다.

귀하의 질문에 답변했거나 다른 방법으로 귀하의 패키지를 실행 했습니까? 하나 이상의 환경이 필요 없다고 확신한다면 환경 변수가 전혀 필요 없다는 신호가 될 것입니다.

+0

답변 해 주셔서 감사합니다. 1 개 이상의 환경 (DEV, QA, PROD ..)을 사용해야합니다. 내 문제는 내가 이런 패키지를 실행하고 있다는 것입니다. -> 웹 서비스를 가지고 있는데, DB에있는 SP에 매개 변수를 보내고,'start_execution'으로 패키지를 실행합니다. 이 매개 변수의 값. 내 의도는 연결 문자열에 환경 변수를 사용하여 쉽게 코딩 할 수 있고 필요한 경우 쉽게 변경할 수 있습니다. DB의 테이블에 의존하도록 변경해야합니까? – sagi

+0

환경 변수는 필요한 것을 얻기위한 좋은 방법이지만 실행을 생성하는 동안 컨텍스트를 결정할 수 있어야합니다 (start_execution을 호출하기 전에 수행해야합니다). 웹 서비스의 매개 변수를 통해 환경 ID를 저장 프로 시저에 전달하거나 ID 또는 환경 이름을 저장할 구성 테이블을 만들 수 있다고 말하고 싶습니다. – PacoDePaco

+0

또 다른 아이디어 : 데이터베이스/서버 이름과 일치하는 이름을 지정하여 필요한 환경을 설정하십시오 (환경을 분리하는 방법에 따라 다름). 그런 다음 [SSISDB]. [catalog]. [environments] 뷰를 쿼리하여 db/server 이름을 사용하여 환경 ID를 추출 할 수 있습니다. – PacoDePaco

관련 문제