Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Pakiet SSIS nie chce pobierać metadanych tabeli tymczasowej

Korzystanie z WITH RESULT SETS jawne zdefiniowanie metadanych pozwoli SSIS pominąć sp_describe_first_result_set kroku i użyj zdefiniowanych przez siebie metadanych. Plusem jest to, że możesz użyć tego, aby SSIS wykonał SQL, który zawiera tabelę tymczasową (dla mnie ta wydajność bardzo pomogła); Minusem jest to, że musisz ręcznie utrzymywać i aktualizować to, jeśli coś się zmieni.

Przykład zapytania (procedura składowana:)

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

Przykład zapytania (prosty 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. FLOOR() Przykłady w SQL Server

  2. Sprawdź, czy tabela ma kolumnę TIMESTAMP w SQL Server za pomocą OBJECTPROPERTY()

  3. SQL Server v.Next :Wydajność STRING_AGG()

  4. Znajdź typ danych kolumn zwróconych w zestawie wyników w SQL Server

  5. Jak zmienić bieżący format daty w SQL Server (T-SQL)