복붙노트

[SQL] 어떻게 SQL 작업 SSIS 실행에서 매개 변수로 변수를 전달하는 방법?

SQL

어떻게 SQL 작업 SSIS 실행에서 매개 변수로 변수를 전달하는 방법?

나는 테이블에 플랫 파일과 삽입 값을 취하고 점에서 SSIS 패키지가 있습니다.

나는 하나가 생성 한 TEMPTABLE에 SQL 실행 태스크 촬영 한

CREATE TABLE [tempdb].dbo.##temptable 
(
date datetime,
companyname nvarchar(50),
price decimal(10,0),
PortfolioId int,
stype nvarchar(50)
)

Insert into [tempdb].dbo.##temptable (date,companyname,price,PortfolioId,stype) 
SELECT   date,companyname,price,PortfolioId,stype
FROM        ProgressNAV
WHERE     (Date = '2011-09-30') AND (PortfolioId = 5) AND (stype in ('Index'))
ORDER BY CompanyName

이제 위의 질의에 나는 (= '2011-09-30'을 날짜)에 합격 (PortfolioId = 5) AND (( '지수')에서 STYPE) 필요 이 3 개의 매개 변수를 사용하여 이름 난 다이나믹하게되도록 패키지 변수를 만들었다.

해결법

  1. ==============================

    1.당신의 SQL 실행 작업에서 확인 SQLSourceType는 다음 SQL 문이 저장된 프로 시저의 이름이 너무 좋아 시저의 각 있었던 파라미터에 대한 questionmarks로,이다, 직접 입력으로 설정되어 있는지 확인합니다 :

    당신의 SQL 실행 작업에서 확인 SQLSourceType는 다음 SQL 문이 저장된 프로 시저의 이름이 너무 좋아 시저의 각 있었던 파라미터에 대한 questionmarks로,이다, 직접 입력으로 설정되어 있는지 확인합니다 :

    왼쪽 열에서 매개 변수 매핑을 클릭하고 저장된 프로 시저에서 각 매개 변수를 추가하고 SSIS 변수에 매핑 :

    이 태스크의 실행 이제 때이 저장된 프로 시저에 SSIS 변수를 전달합니다.

  2. ==============================

    2.엑셀 및 OLED DB 연결 관리자는 매개 변수 이름 0과 1을 사용합니다.

    엑셀 및 OLED DB 연결 관리자는 매개 변수 이름 0과 1을 사용합니다.

    나는 OLEDB 연결 및 쿼리 작업 또는 매개 변수를 고려하지 않은 이유를 알아 내려고 시간의 낭비 몇 가지를 사용하고 있었다. 위의 설명은 많은 도움이 고마워요.

  3. ==============================

    3.@ PaulStock의 대답과 함께, 연결 유형에 변수 이름과의 SQLStatement / SQLStatementSource 변화를 따라

    @ PaulStock의 대답과 함께, 연결 유형에 변수 이름과의 SQLStatement / SQLStatementSource 변화를 따라

    https://docs.microsoft.com/en-us/sql/integration-services/control-flow/execute-sql-task

  4. ==============================

    4.절은 SQL 명령에 대한 자격을 충족해야 소스 테이블의 조건 각 행을 정의 필터를 지정하는 WHERE SELECT, INSERT, UPDATE 및 DELETE 명령은 자주 있습니다. 매개 변수는 WHERE 절에 필터 값을 제공합니다.

    절은 SQL 명령에 대한 자격을 충족해야 소스 테이블의 조건 각 행을 정의 필터를 지정하는 WHERE SELECT, INSERT, UPDATE 및 DELETE 명령은 자주 있습니다. 매개 변수는 WHERE 절에 필터 값을 제공합니다.

    동적 매개 변수 값을 제공하기 위해 매개 변수 마커를 사용할 수 있습니다. 매개 변수 표식 및 매개 변수 이름은 SQL 문에서 사용할 수있는 규칙은 SQL의 사용을 실행하는 것이 연결 관리자의 유형에 따라 달라집니다.

    연결 관리자 유형별 SELECT 명령의 다음 표 예. 삽입, UPDATE 및 DELETE 문은 비슷합니다. 예제보다 적은 두 개의 매개 변수에 의해 지정된 값보다 제품 ID 큰이 AdventureWorks2012의 제품 테이블에서 제품을 반환하는 SELECT를 사용합니다.

    EXCEL, ODBC 및 OLEDB

    SELECT* FROM Production.Product WHERE ProductId > ? AND ProductID < ?
    

    ADO

    SELECT * FROM Production.Product WHERE ProductId > ? AND ProductID < ?
    

    ADO.NET

    SELECT* FROM Production.Product WHERE ProductId > @parmMinProductID 
         AND ProductID < @parmMaxProductID
    

    예는 다음 이름이 매개 변수가 필요합니다 : 엑셀 및 OLED DB 연결 관리자는 ODBC 연결 방식 1과 2를 사용 0과 1 변수 명을 사용한다. ADO 연결 유형은 Param1을하고과 Param2와 같은 두 개의 매개 변수 이름을 사용할 수 있지만 매개 변수는 매개 변수 목록에서의 서수 위치에 따라 매핑해야합니다. ADO.NET 연결 유형은 매개 변수 이름은 @parmMinProductID 및 @parmMaxProductID 사용합니다.

  5. ==============================

    5.내가 삽입을 위해 그것을 어떻게 늦게 파티에 작은, 그러나 이것은이다 :

    내가 삽입을 위해 그것을 어떻게 늦게 파티에 작은, 그러나 이것은이다 :

    DECLARE @ManagerID AS Varchar (25) = 'NA'
    DECLARE @ManagerEmail AS Varchar (50) = 'NA'
    Declare @RecordCount AS int = 0
    
    SET @ManagerID = ?
    SET @ManagerEmail = ?
    SET @RecordCount = ?
    
    INSERT INTO...
    
  6. from https://stackoverflow.com/questions/7610491/how-to-pass-variable-as-a-parameter-in-execute-sql-task-ssis by cc-by-sa and MIT license