Domanda

Ho un database di Access in cui trascino la tabella e quindi la creo di nuovo.Tuttavia, devo essere in grado di testare la tabella nel caso in cui la tabella venga eliminata ma non creata (ad es.quando qualcuno interrompe il pacchetto DTS subito dopo l'avvio -roll-eyes- ).Se lo facessi nel database SQL, farei semplicemente:

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

Ma come posso farlo per un database Access?

Risposta facoltativa:esiste un modo per fare in modo che il pacchetto DTS ignori l'errore e vada semplicemente al passaggio successivo anziché verificare se esiste?

SQLServer2000

È stato utile?

Soluzione

Non sono sicuro se sia possibile eseguire query sulla tabella degli oggetti di sistema in un database di Access da un pacchetto DTS.

Se quello no funziona, perché non provare semplicemente a fare un SELECT * dalla tabella di Access in questione e poi cogliere l'errore se fallisce?

Altri suggerimenti

Prova lo stesso T-SQL, ma in MS ACCESS la tabella degli oggetti sys si chiama:MSysObjects.

Prova questo:

SELECT * FROM MSysObjects WHERE Name = 'your_table';

e vedi se funziona da lì.

Puoi dare un'occhiata a queste tabelle se vai su Strumenti -> Opzioni -> Visualizza (una scheda) -> e seleziona Oggetti nascosti, Oggetti di sistema.Quindi puoi vederli entrambi.Se apri la tabella, dovresti vedere i nomi della tabella, le query, ecc.Non modificarlo manualmente altrimenti il ​​DB potrebbe andare nel panico :)

Martino.

P.D.:Il tuo If Exists dovrebbe anche controllare il tipo di oggetto:

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

Microsoft Access dispone di una tabella di sistema denominata MSysObjects che contiene un elenco di tutti gli oggetti di database, incluse le tabelle.Gli oggetti tabella hanno Tipo 1, 4 e 6.

È importante fare riferimento al tipo:

...Dove Nome='NomeTabella' e digita (1,4,6)

Altrimenti, ciò che viene restituito potrebbe essere un oggetto diverso da una tabella.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top