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

Anexar tablas secuencialmente con LOOP

Estas en el tema de Anexar tablas secuencialmente con LOOP en el foro de SQL Server en Foros del Web. Quiero hacer mediante un DO WHILE.....LOOP un bucle que vaya anexando registros de varias tablas con nombres secuenciales (H0001, H0002, H0003......) a otra tabla TOTAL. ...
  #1 (permalink)  
Antiguo 03/11/2006, 02:58
 
Fecha de Ingreso: marzo-2006
Mensajes: 17
Antigüedad: 18 años, 2 meses
Puntos: 0
Anexar tablas secuencialmente con LOOP

Quiero hacer mediante un DO WHILE.....LOOP un bucle que vaya anexando registros de varias tablas con nombres secuenciales (H0001, H0002, H0003......) a otra tabla TOTAL. He creado un contador que incrementa +1 para nombrar la tabla que quiere anexarse (mediante la orden de SQL INSERT INTO....). Funciona bien hasta que falta un fichero en la secuencia, es decir, si falta el H0006, se para y me da la instrucción de error -2147217865, (No se encuentra la database).

¿Mi pregunta es si existe alguna orden, puesta en un IF, por ejemplo que pueda decirle que si no encuentra la tabla que sigue, que continue???
  #2 (permalink)  
Antiguo 04/11/2006, 08:28
 
Fecha de Ingreso: octubre-2006
Mensajes: 36
Antigüedad: 17 años, 6 meses
Puntos: 0
Si, si tienes permisos suficientes podrás realizar la siguiente consulta

IF (EXISTS(SELECT 'OK' FROM sysObjects WHERE XType = 'U' And Name = @NombreTabla))

El xType U es de UserTable.
  #3 (permalink)  
Antiguo 05/11/2006, 00:49
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Otra alternativa (que yo prefiero porque consultar directamente tablas de sistema no es recomendado) es:

IF OBJECT_ID(@NombreTabla) IS NOT NULL
PRINT 'la tabla existe'
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
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 16:45.