2010-03-23 3 views
39

SQL Server Business Intelligent Development Studio에서 SSIS (SQL Server Integration Services)를 사용하고 있습니다.SSIS 구성 파일에서 연결 문자열을 동적으로 설정하는 방법

다음과 같은 작업을 수행해야합니다. 원본 데이터베이스에서 읽고 대상 플랫 파일에 저장해야합니다. 그러나 동시에 소스 데이터베이스를 구성 할 수 있어야합니다.

즉, OLEDB 연결 관리자에서 연결 문자열이 동적으로 변경되어야 함을 의미합니다. 이 연결 문자열은 구성/XML/플랫 파일에서 가져와야합니다.

변수와 표현식을 사용하여 연결 문자열을 동적으로 변경할 수 있음을 읽었습니다. 하지만 config/XML/flat 파일에서 연결 문자열 값을 읽고 변수를 설정하는 방법은 무엇입니까?

이 부분은 할 수 없습니다. 이것을 달성하는 것이 올바른 방법입니까? web.config 파일을 SSIS 프로젝트에 추가 할 수 있습니까?

답변

10

다음은 패키지 구성 : Understanding Integration Services Package Configurations이라고하는 사용할 메커니즘에 대한 배경입니다. 기사는 구성의 5 가지 유형을 설명

  • XML 설정 파일
  • 환경 변수
  • 레지스트리 항목
  • 부모 패키지 변수 여기

SQL Server를 설정하는 연습을의

  • 연결 관리자에서 구성을 구성하십시오. SQL Server Integration Services SSIS Package Configuration - 이것이 우리임을 깨닫습니다. 연결 문자열에 대한 환경 변수를 작성하는 것은 좋은 생각이 아니지만 기본 사항은 XML 파일 사용과 동일합니다. 이 연습에서 변경해야 할 유일한 단계는 구성 유형과 경로입니다.

    26

    일부 옵션 :

    1. 당신은 패키지를 실행하기 전에, 당신의 데이터 소스를 변경할 수 Execute Package Utility를 사용할 수 있습니다.

    2. DTEXEC을 사용하여 패키지를 실행할 수 있으며/CONNECTION 매개 변수를 전달하여 연결을 변경할 수 있습니다. 다음 번에 일괄 처리로 저장하면 모든 것을 입력 할 필요없이 필요할 때마다 데이터 소스 만 변경할 수 있습니다.

    3. SSIS XML package configuration 파일을 사용할 수 있습니다. 다음은 walk through입니다.

    4. 데이터베이스 테이블에 구성을 저장할 수 있습니다.

    +3

    4. 구성을 데이터베이스 테이블에 저장할 수 있습니다. – HLGEM

    +0

    5 가지 유형의 구성은 [Integration Services 패키지 구성 이해] (http://msdn.microsoft.com/en-us/library/cc895212.aspx) –

    29

    먼저 SSIS 패키지 (패키지 범위)에 변수를 추가합니다. - FileName, OleRootFilePath, OleProperties, OleProvider를 사용했습니다. 각 변수의 유형은 "문자열"입니다. 그런 다음 구성 파일을 만듭니다 (각 변수 값 선택). - 구성 파일의 값을 채 웁니다. 예 : OleProperties - Microsoft.ACE.OLEDB.12.0; OleProperties - Excel 8 용.0; HDR = OleRootFilePath - 당신의 Excel 파일 경로, 파일 이름 - 파일 이름

    연결 관리자에 - 나는 다음 속성 -> Expressions-> 연결 문자열 식을 설정 동적 예 :

     
    "Provider=" + @[User::OleProvider] + "Data Source=" + @[User::OleRootFilePath] 
    + @[User::FileName] + ";Extended Properties=\"" + @[User::OleProperties] + "NO \""+";" 
    

    이 방법은 한 번 변수 값을 설정하고 구성 파일에서 변경하면 연결 문자열이 동적으로 변경됩니다. 특히 개발 환경에서 프로덕션 환경으로 전환하는 데 도움이됩니다.

    +1

    에 설명되어 있습니다. – Sky

    2

    패키지 구성 -> 구성 -> 패키지 구성 사용 -> 추가 - xml 구성 파일 -> dtsconfig 파일 지정 -> 다음을 클릭 -> OLEDB 속성에서 연결 문자열 확인 -> 연결 문자열 값 표시 - > 다음을 클릭하면 패키지가 완성됩니다.

    당신은

    0

    이 답변 잘하지만, 나이와 Depoloyement Package Model 작동이 과정에서 또한 환경 변수를 추가 할 수 있습니다. 내가 실제로 필요로하는 것은, 연결 관리자의 데이터베이스 이름을 서버 이름을 변경하는 것입니다 그리고 난 매우 도움이 발견 :

    SQL 서버 2012-2014-2016을 사용하는 사람들에게

    https://www.youtube.com/watch?v=_yLAwTHH_GA

    더 나은 ... Deployment Project Model을 가진

    관련 문제