sql >> Database >  >> RDS >> Sqlserver

SSIS-pakket wil geen metadata van tijdelijke tabel ophalen

Gebruik WITH RESULT SETS door de metadata expliciet te definiëren, kan SSIS de sp_describe_first_result_set overslaan stap en gebruik de metadata die u definieert. Het voordeel is dat je dit kunt gebruiken om SSIS SQL te laten uitvoeren die een tijdelijke tabel bevat (voor mij hebben die prestaties veel geholpen); het nadeel is dat je dit handmatig moet onderhouden en bijwerken als er iets verandert.

Voorbeeld opvragen (opgeslagen procedure:)

    EXEC ('dbo.MyStoredProcedure')
    WITH RESULT SETS
      (
        (
            MyIntegerColumn INT NOT NULL,
            MyTextColumn VARCHAR(50) NULL,
            MyOtherColumn BIT NULL
        )
      )

Queryvoorbeeld (eenvoudige SQL:)

EXEC ('
    CREATE TABLE #a 
      (
        MyIntegerColumn INT NOT NULL,
        MyTextColumn VARCHAR(50) NULL,
        MyOtherColumn BIT NULL
      ) 
    INSERT INTO #a 
      (
        MyIntegerColumn,
        MyTextColumn,
        MyOtherColumn
      )
    SELECT 
        1 AS MyIntegerColumn,
        ''x'' AS MyTextColumn,
        0 AS MyOtherColumn

    SELECT MyIntegerColumn, MyTextColumn, MyOtherColumn
    FROM #a')

WITH RESULT SETS
    (
        (
            MyIntegerColumn INT NOT NULL
           ,MyTextColumn VARCHAR(50) NULL
           ,MyOtherColumn BIT NULL
        )
    )


  1. INSERT SELECT-instructie in Oracle 11G

  2. Hoe selecteer ik efficiënt de vorige niet-null-waarde?

  3. Bereken het aantal records voor elke datum tussen 2 datums

  4. Hoe te controleren of een gebruiker op [Annuleren] heeft geklikt op een InputBox in VBA