sql >> Database teknologi >  >> RDS >> Sqlserver

SSIS-pakken ønsker ikke at hente metadata fra den midlertidige tabel

Brug af WITH RESULT SETS eksplicit at definere metadataene vil tillade SSIS at springe sp_describe_first_result_set over trin og brug de metadata, som du definerer. Fordelen er, at du kan bruge dette til at få SSIS til at udføre SQL, der indeholder en midlertidig tabel (for mig hjalp den ydeevne meget); Ulempen er, at du manuelt skal vedligeholde og opdatere dette, hvis noget ændrer sig.

Forespørgselseksempel (lagret procedure:)

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

Forespørgselseksempel (simpel 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. Hvordan opdager man, at transaktionen allerede er startet?

  2. Sådan rettes:Ingen passende driver fundet til jdbc:mysql://localhost/dbname-fejl ved brug af pools?

  3. Hvordan får jeg de primære nøgler til en tabel fra Postgres via plpgsql?

  4. dvale kunne ikke hente næste sekvensværdi