Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Comprobar si la tabla existe

Estas en el tema de Comprobar si la tabla existe en el foro de SQL Server en Foros del Web. como comprobar existencia de una tabla, existe alguna funcion que me realice esta tarea, con un procedimiento almacenado, que comprueba si existe una tabla o ...
  #1 (permalink)  
Antiguo 11/12/2006, 08:14
Avatar de jhoncacru  
Fecha de Ingreso: mayo-2004
Ubicación: cochabamba-Bolivia
Mensajes: 107
Antigüedad: 20 años
Puntos: 1
Comprobar si la tabla existe

como comprobar existencia de una tabla, existe alguna funcion que me realice esta tarea,

con un procedimiento almacenado, que comprueba si existe una tabla o no si es que existe no realiza ninguna accion pero si es que no existe la crea e inserta valores.
he intentado hacer algo pero existe un error,
Server: Msg 208, Level 16, State 1, Procedure SP_COMPORTAMIENTO, Line 10
Invalid object name '#ASIS_COMPORTAMIENTO'.

Código:
CREATE PROC SP_COMPORTAMIENTO
( @codigobarra int,
             @numdia Int , 
 @fecha int, 
 @atrasos int,
 @anticipos int)
AS
IF EXISTS( SELECT *  FROM #ASIS_COMPORTAMIENTO)
PRINT 'La tabla existe'
Else
  CREATE TABLE #ASIS_COMPORTAMIENTO (codigobarra INT,numdia   INT, fecha DATETIME, atrasos INT, anticipos INT)
INSERT INTO  #ASIS_COMPORTAMIENTO (codigobarra,numdia,fecha,atrasos,anticipos)  values(@codigobarra,@numdia,@fecha,@atrasos,@anticipos)
GO
__________________
Gracias de antemano.

Última edición por jhoncacru; 11/12/2006 a las 09:02 Razón: ortografía
  #2 (permalink)  
Antiguo 11/12/2006, 11:32
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 5 meses
Puntos: 8
Re: Comprobar si la tabla existe

Que tal Jhon.

Con el siguiente código puedes saber si una tabla existe o no.

Código:
IF EXISTS (SELECT * FROM sysobjects WHERE type = 'U' AND name = 'Nombre de tu tabla')
	BEGIN
		PRINT 'Existe'
		
	END
ELSE
	BEGIN
		PRINT 'no existe'
	END
El uso del simbolo # indica que es una tabla temporal a nivel sesión.

Saludos y suerte!
  #3 (permalink)  
Antiguo 11/12/2006, 20:36
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 17 años, 5 meses
Puntos: 6
Re: Comprobar si la tabla existe

La sentencia Exists no es para validar la existencia de un objeto, sino para validar la existencia de un set de resultados en la instruccion select que ejecutas entre los parentesis, la solucion es como te la indica el buen Daniel00

Saludos!
  #4 (permalink)  
Antiguo 13/12/2006, 16:55
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Re: Comprobar si la tabla existe

IF OBJECT_ID('dbo.mitabla') IS NULL
BEGIN
--no existe
END
ELSE
BEGIN
--existe
END

Es una práctica más sana -y corta- debido a que no haces querys directos a las tablas de sistema (una mala práctica según los entendidos en la materia).
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #5 (permalink)  
Antiguo 13/12/2006, 20:27
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 17 años, 5 meses
Puntos: 6
Re: Comprobar si la tabla existe

Buen punto... :D
  #6 (permalink)  
Antiguo 26/06/2009, 14:16
 
Fecha de Ingreso: marzo-2009
Mensajes: 73
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: Comprobar si la tabla existe

se que el post es viejo pero tengo una duda mas

el ms sql server mana.. stud.. expr.. 2005 me genera esto:
Código:
IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[Afiliados]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
BEGIN
por que no simplemente usar OBJECT_ID? en importante comprobar si es user table?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:04.