Usuário com melhor resposta
Tabela Temporária ( DÚVIDA )

Pergunta
-
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.
-
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;
-
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
Abraço
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
-
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.
-
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;
-
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
-
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
-
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
Abraço
-
-
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
-
-
-