domingo, 20 de fevereiro de 2011

OLE DB DataSource perde MetaDados quando Procedure é alterada

Sintoma: Ao alterar uma procedure, um componente OLE DB Datasource perde os Metadados relacionados a ela.

Causa: O SSIS lê os Metadados do primeiro Statement de uma procedure. Originalmente a procedure era uma query muita simples, com apenas um select e joins. A alteração da minha procedure, envolvia adicionar mais comandos antes da query final, o que fez com que esta query perdesse os Metados do primeiro comando.

Solução: Adicionei um "Dummy Select" no início da query apenas para gerar os MetaDados, algo assim:

  IF 1=0
  BEGIN
 
    SELECT 
      CAST(NULL AS INT) AS ID
,CAST(NULL AS INT) AS Marks
  END

Porém apenas isto não resolveu, foi necessário alterar o NOCOUNT antes da Batch:

SET NOCOUNT ON
SET FMTONLY OFF

Mais informações: http://twixar.com/g4H8pk

Até a próxima!

Nenhum comentário:

Postar um comentário

Leave your comment here!