none
Tabela Temporária ( DÚVIDA ) RRS feed

Respostas

  • Benê,

     

    Se for uma table temporária local, por exemplo #SuaTable, ela será encerrada no momento em que a sessão que a criou for finalizada.

     

    Agora se for uma table temporário global, como ##SuaTable, a mesma será encerrada somente quando todas as sessões forem finalizadas ou quando o serviço do sql server for parado.

     

    Mas em particular eu pouco vi tables temporárias globais.

    sexta-feira, 21 de setembro de 2007 17:06
  •  

    Junior

     

    --

    Agora se for uma table temporário global, como ##SuaTable, a mesma será encerrada somente quando todas as sessões forem finalizadas ou quando o serviço do sql server for parado.

    --

     

    na verdade a ## e removida quando a sessao que a criou e encerrada.

     

     

     

    Abs;

    sexta-feira, 21 de setembro de 2007 18:34
  •  

    Benê,

     

    É meio complicado fazer isso com tabelas temporárias. Isso pq, como vemos, no momento em que não se está mais usando ela, esta deixa de existir.

     

    Eu diria que você poderia criar uma tabela no formato que você deseja e apenas agendar um Job para limpar a mesma no momento que o serviço do SQL subir, fica bem mais simples.

     

     

    Veja se resolve seu problema Wink

     

     

    Abraço

    sábado, 22 de setembro de 2007 22:12

Todas as Respostas

  •  

    Oi Benê!!

     

    No momento que for fechada a sessão ela deixará de existir.

     

    Mas, eu recomendo usar variáveis do tipo TABLE. Assim:

     

    DECLARE @Tabela TABLE (ID INT, Nome VARCHAR(100) )

     

    Assim, quando terminar a execução ela não mais existirá, mesmo sem fechar a sessão.

     

     

    Abração

    sexta-feira, 21 de setembro de 2007 16:22
  • Benê,

     

    Se for uma table temporária local, por exemplo #SuaTable, ela será encerrada no momento em que a sessão que a criou for finalizada.

     

    Agora se for uma table temporário global, como ##SuaTable, a mesma será encerrada somente quando todas as sessões forem finalizadas ou quando o serviço do sql server for parado.

     

    Mas em particular eu pouco vi tables temporárias globais.

    sexta-feira, 21 de setembro de 2007 17:06
  •  

    Junior

     

    --

    Agora se for uma table temporário global, como ##SuaTable, a mesma será encerrada somente quando todas as sessões forem finalizadas ou quando o serviço do sql server for parado.

    --

     

    na verdade a ## e removida quando a sessao que a criou e encerrada.

     

     

     

    Abs;

    sexta-feira, 21 de setembro de 2007 18:34
  •  

    Marcelo,

     

    O Junior tá certo...

    "Global temporary tables are visible to any user and any connection after they are created, and are deleted when all users that are referencing the table disconnect from the instance of SQL Server." (Retirado do BOL)

     

     

    Abraço

    sexta-feira, 21 de setembro de 2007 18:47
  • Entendi, e procurei assunto sobre tabelas temporárias local e global, ainda estou estudando o assunto.

     

    Existe alguma maneira de eu criar uma tabela temporária no SQL, que seja apagada SOMENTE quando o serviço do SQL for finalizado ou reiniciado?

     

    Assim quando meu aplicativo iniciar crio a tabela temporária, que irá existir enquanto o serviço do SQL estiver ativo, quando o serviço do SQL for reiniciado, ou quando o servidor SQL for reiniciado ela não existirá mais, até que se entre em meu aplicativo que por sua vez recria a tebela temporária.

     

    Isto é possível digo viável?

     

     

    Obrigado

    Bene

     

    sábado, 22 de setembro de 2007 13:54
  •  

    Benê,

     

    É meio complicado fazer isso com tabelas temporárias. Isso pq, como vemos, no momento em que não se está mais usando ela, esta deixa de existir.

     

    Eu diria que você poderia criar uma tabela no formato que você deseja e apenas agendar um Job para limpar a mesma no momento que o serviço do SQL subir, fica bem mais simples.

     

     

    Veja se resolve seu problema Wink

     

     

    Abraço

    sábado, 22 de setembro de 2007 22:12
  • Alexandre...

     

    Você poderia me descrever como faço isto.

     

    Obrigado

    Bene

    domingo, 23 de setembro de 2007 15:57
  •  

    Benê,

     

    Faça a criação normal de sua tabela, com o formato que desejar. Depois disso, faça a criação de um job, que execute um TRUNCATE TABLE sobre essa tal tabela e agende esse job para ser executado no momento que o agente do SQL for iniciado, essa é uma opção que você poderá encontrar no agendamento do Job.

     

     

    Bom, imagino que isso irá resolver seu problema. Só não entendi exatamente qual a sua necessidade, por que gostaria de criar essa tabela para armazenar apenas dados enquanto o SQL está ligado??

     

     

    Abraço

    domingo, 23 de setembro de 2007 22:40
  • Opa sorry meu erro. confundi mais ja desconfundi.....

     

    Obrigado pela atencao.

    segunda-feira, 24 de setembro de 2007 10:51
  •  

    Blz Marcelo,

     

    Abração

    segunda-feira, 24 de setembro de 2007 12:10
  • Caro Alexandre

     

    É isto mesmo tenho que criar uma Tabela Temporária quando meu aplicativo for ativado, e ela deve ser zerada/reiniciada juntamente com o SQL.

     

    Obrigado

    Bene

     

    terça-feira, 25 de setembro de 2007 00:23