Pregunta

Tengo una base de datos de Access en la que dejo caer la tabla y luego la creo de nuevo.Sin embargo, necesito poder probar la tabla en caso de que la tabla se elimine pero no se cree (es decir,cuando alguien detiene el paquete DTS justo después de que comienza (roll-eyes-).Si estuviera haciendo esto en la base de datos SQL, simplemente haría:

IF (EXISTS (SELECT * FROM sysobjects WHERE name = 'Table-Name-to-look-for'))
BEGIN
drop table 'Table-Name-to-look-for'
END

¿Pero cómo hago eso para una base de datos de Access?

Respuesta opcional:¿Hay alguna manera de que el paquete DTS ignore el error y simplemente vaya al siguiente paso en lugar de verificar si existe?

Servidor SQL 2000

¿Fue útil?

Solución

No estoy seguro de si puede consultar la tabla de objetos del sistema en una base de datos de Access desde un paquete DTS.

Si eso no funciona, ¿por qué no intentar hacer un SELECT * desde la tabla de Access en cuestión y luego atrapar el error si falla?

Otros consejos

Pruebe el mismo T-SQL, pero en MS ACCESS la tabla de objetos del sistema se llama:MSysObjetos.

Prueba esto:

SELECT * FROM MSysObjects WHERE Name = 'your_table';

y ver si funciona desde allí.

Puede echar un vistazo a estas tablas si va a Herramientas -> Opciones -> Ver (una pestaña) -> y marca Objetos ocultos, Objetos del sistema.Entonces puedes ver ambos.Si abre la tabla, debería ver los nombres de sus tablas, consultas, etc.No cambie esto manualmente o la base de datos podría entrar en pánico :)

Martín.

P.D.:Su If Exists también debería verificar el tipo de objeto:

IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'[dbo].[Your_Table_Name]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)

Microsoft Access tiene una tabla del sistema llamada MSysObjects que contiene una lista de todos los objetos de la base de datos, incluidas las tablas.Los objetos de tabla son de tipo 1, 4 y 6.

Es importante hacer referencia al tipo:

...Donde Nombre = 'Nombre de la tabla' y escriba (1,4,6)

De lo contrario, lo que se devuelve podría ser algún objeto distinto de una tabla.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top