none
Variavel do tipo Table

    Question

  • Quando crio uma variavel do tipo table no SQL Server 2005, tem a necessidade de fachar ela no final da procedure. Por exemplo:

     

    DECLARE @Tabela_Tipos TABLE(Registro INT IDENTITY(1, 1), Tipo VARCHAR(2), Descricao VARCHAR(100))

    INSERT INTO @Tabela_Tipos VALUES('U', 'TABLE (user-defined)')

    INSERT INTO @Tabela_Tipos VALUES('V', 'VIEW')

    INSERT INTO @Tabela_Tipos VALUES('P', 'SQL STORED PROCEDURE')

     

    No final do Procedure é preciso fechar para liberar memoria e ganhar performance ? se sim, como fazer isso ?

     

    Obrigado

    Tuesday, July 17, 2007 5:33 PM

Answers

  • DaviSaba,

    não é neccessário fazer nada pq o escopo da variável termina ao final da execução da Stored Procedure e o SQL Server se encarrega de descartar a variável.
    Tuesday, July 17, 2007 5:59 PM
  •  

    Davi,

     

    O Gesiel está certo...

     

    Se fosse uma tabela temporária (identificada por "#") seria necessário dar um DROP a menos que a sessão seja fechada imediatamente. Mas por garantia se aconselha dar DROP.

     

    No caso da variável tipo TABLE não é necessário, quando você termina a execução, ela já não existirá mais, mesmo mantendo a sessão aberta.

     

     

    Abraço

    Tuesday, July 17, 2007 6:04 PM
  • Davi,

     

    Concordo com o Alexandre e também com o Gesiel, por se tratar de uma variável do tipo table, não é necessário realizar nenhum procedimento que encerre ou finalize a variável.

    Tuesday, July 17, 2007 6:08 PM

All replies

  • DaviSaba,

    não é neccessário fazer nada pq o escopo da variável termina ao final da execução da Stored Procedure e o SQL Server se encarrega de descartar a variável.
    Tuesday, July 17, 2007 5:59 PM
  •  

    Davi,

     

    O Gesiel está certo...

     

    Se fosse uma tabela temporária (identificada por "#") seria necessário dar um DROP a menos que a sessão seja fechada imediatamente. Mas por garantia se aconselha dar DROP.

     

    No caso da variável tipo TABLE não é necessário, quando você termina a execução, ela já não existirá mais, mesmo mantendo a sessão aberta.

     

     

    Abraço

    Tuesday, July 17, 2007 6:04 PM
  • Davi,

     

    Concordo com o Alexandre e também com o Gesiel, por se tratar de uma variável do tipo table, não é necessário realizar nenhum procedimento que encerre ou finalize a variável.

    Tuesday, July 17, 2007 6:08 PM
  • Galera obrigado, assim fico mais tranquilo !!!

     

    Tuesday, July 17, 2007 7:26 PM