Cuando tratamos con un procedimiento almacenado en el que utilizamos tablas temporales, es posible que un fallo en la consulta arruine el flujo normal del programa, haciendo que la eliminación de la propia tabla temporal no se realice.
Este caso en concreto puede provocar un error en la próxima ejecución del procedimiento, ya que la creación de la tabla temporal provocará un fallo si esta ya existe.
Para intentar subsanar esta posibilidad, podemos comprobar, antes de crear la tabla temporal, si esta ya existe. Para ello haremos lo siguiente:
IF OBJECT_ID('tempdb..#UsuarioTemp') IS NOT NULL BEGIN DROP TABLE #UsuarioTemp; END
Esto comprobará la existencia de la tabla temporal, y si existe, la eliminará. Posteriormente podremos incluir el código de creación de la tabla.
El el caso de que queramos comprobar la existencia de una tabla real (no temporal) de la base de datos, utilizaremos el siguiente código T-SQL:
IF OBJECT_ID('USUARIO') IS NOT NULL BEGIN SELECT 'SELECT * FROM USUARIO'; END ELSE BEGIN CREATE TABLE USUARIO( [IdUsuario] [int], [Nombre] [varchar](100), [Apellido1][varchar](100), [Apellido2][varchar](100), [Login][varchar](100), [Password][varchar](100), ) END
Con lo cual se realizará una consulta sobre la tabla si ésta existe, o la creará en caso contrario. Queda a voluntad del programador las posibilidades de la existencia o no de las tablas.
Loco muchas Gracias!!!! Excelente info.
exelente gracias