sql >> Databáze >  >> RDS >> Sqlserver

Balíček SSIS nechce načíst metadata dočasné tabulky

Pomocí WITH RESULT SETS explicitně definovat metadata umožní SSIS přeskočit sp_describe_first_result_set krok a použijte metadata, která definujete. Výhodou je, že to můžete použít k tomu, aby SSIS spustil SQL, který obsahuje dočasnou tabulku (pro mě tento výkon hodně pomohl); Nevýhodou je, že to musíte ručně udržovat a aktualizovat, pokud se něco změní.

Ukázka dotazu (uložená procedura:)

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

Ukázka dotazu (jednoduché 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. Oracle 11g - Jak optimalizovat výběr pomalé paralelní vložky?

  2. ORA-12170:TNS:Vypršel časový limit připojení

  3. Jak nastavit časový limit příkazu pro provedení dotazu

  4. Základy tabulkových výrazů, Část 6 – Rekurzivní CTE