¿Existe una tabla temporal?

15/09/2004 - 13:32 por poker | Informe spam
¿Como puedo comprobar si existe una tabla temporal?.¿Y si pertenece a mi
sesión o no?

Una pista:

select *
from tempdb.dbo.sysobjects (nolock)
where name like '#tmp_prueba%'

Preguntas similare

Leer las respuestas

#1 Tinoco
15/09/2004 - 14:20 | Informe spam
Hola, algo parecido a tu script...

if exists
(
select name
from tempdb.dbo.sysobjects
where patindex('#tmp_prueba%',name) > 0
)

Si pertenece a tu sesion ?

Hermilson T.
Colombia

Mostrar la cita
temporal?.¿Y si pertenece a mi
Mostrar la cita
#2 poker
15/09/2004 - 14:44 | Informe spam
Gracias, pero no me sirve de mucho, ya conocía el "exists". En realidad
me interesa más saber si esa tabla temporal pertenece a mi sesión o no. Es
para que desde varias instancias de la misma aplicación pueda hacer la
comprobación a la vez. Es decir, cada aplicación tiene su conexión y su
propia tabla temporal, y no quiero que la instancia A confunda la tabla
temporal de la instancia B y crea que le pertenece.

"Tinoco" escribió en el mensaje
news:086201c49b1e$7392ef30$
Hola, algo parecido a tu script...

if exists
(
select name
from tempdb.dbo.sysobjects
where patindex('#tmp_prueba%',name) > 0
)

Si pertenece a tu sesion ?

Hermilson T.
Colombia

Mostrar la cita
temporal?.¿Y si pertenece a mi
Mostrar la cita
#3 Carlos Sacristan
15/09/2004 - 14:55 | Informe spam
Las tablas temporales son propias de la conexión que la creó, por lo que
no puede existir la confusión que comentas. Otra cosa es que sean globales
(prefijo ##)


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL


"poker" escribió en el mensaje
news:
Mostrar la cita
realidad
Mostrar la cita
#4 Javier Loria
15/09/2004 - 15:13 | Informe spam
Hola:
Las tablas temporales, son un recurso muy caro y con frecuencia no son
necesarias. Son, junto con los cursores, responsables de muchos de los
problemas de rendimiento. Hay algunas ocasiones en que bien usadas si
mejoran el desempeno.
Para revisar si una tabla temporal existe puedes usar:
CREATE TABLE #Chunches (
Chunche VARCHAR(10)
)

IF Object_Id('TempDB..#Chunches') is Not Null
BEGIN
PRINT 'OK'
END
ELSE
BEGIN
PRINT 'NOK'
END

DROP TABLE #Chunches

IF Object_Id('TempDB..#Chunches') is Not Null
BEGIN
PRINT 'OK'
END
ELSE
BEGIN
PRINT 'NOK'
END
= Solo aparece el objeto si pertenece a mi sesion, igualmente apareceran
las Tablas Temporales Globales con el Object_Id
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda

"poker" wrote in message
news:#
Mostrar la cita
mi
Mostrar la cita
#5 poker
15/09/2004 - 16:59 | Informe spam
Muchas gracias, esto era lo que quería. Tomaré nota sobre la escasa
eficiencia de las tablas temporales.

"Javier Loria" escribió en el mensaje
news:%
Mostrar la cita
a
Mostrar la cita
Ads by Google
Search Busqueda sugerida