Überprüfen ob Tabelle vorhanden ist
Thomas Mell
- datenbank
0 Jens Menke0 Rolf
Hallo,
gibt es einen SQL-Befehl mit dem man das Vorhandensein einer Tabelle innerhalb einer Access-Datenbank überprüfen kann? Diese soll, wenn sie vorhanden ist, gelöscht werden.
cucu
Thomas
Hallo,
gibt es einen SQL-Befehl mit dem man das Vorhandensein einer Tabelle innerhalb einer Access-Datenbank überprüfen kann? Diese soll, wenn sie vorhanden ist, gelöscht werden.
cucu
Thomas
mach doch einfach
on error resume next
und lösch die Tabelle , wenn sie nicht da ist kann sie
halt nicht gelöscht werden.. aber es tritt auch keine
nervige Fehlermeldung auf.
gruss
Jens
und lösch die Tabelle , wenn sie nicht da ist kann sie
halt nicht gelöscht werden.. aber es tritt auch keine
nervige Fehlermeldung auf.
Ich wuerd am besten gleich die ganze Datenbank loeschen, dann hat man ueberhaupt keine Probleme mehr <g>
Also wenn die Tabelle da ist und ich loesche sie, dann sind ploetzlich alle Daten weg? Sehr geschickte Loesung :-)
Ich wuerd am besten gleich die ganze Datenbank loeschen, dann hat man ueberhaupt keine Probleme mehr <g>
Also wenn die Tabelle da ist und ich loesche sie, dann sind ploetzlich alle Daten weg? Sehr geschickte Loesung :-)
Naja.. gibt schon mal Sachen wo es sinvoll sein kann ne
Tabelle zu löschen.. aber normalerweise nur um sie dann
gleich leer wieder anzulegen..
Temporäre Tabellen bei Datenimporten z.B.
Eine Schleife die alle Datensätzte löscht wäre meiner
Meinung nach aber Programmtechnisch dann wesentlich
einfacher zu erstellen.
Hallo,
gibt es einen SQL-Befehl mit dem man das Vorhandensein einer Tabelle innerhalb einer Access-Datenbank überprüfen kann? Diese soll, wenn sie vorhanden ist, gelöscht werden.
cucu
Thomas
Hallo,
Tabelle löschen geht mit "drop table tablename" ...
mehr Infos zu SQL und weiterführende Links:
http://www.geocities.com/ResearchTriangle/Node/9672/sqltut.html
Und hier noch eine interessante Adresse, wenns um (MS)Accesszugriffe mit PERL geht:
http://www.perl-archiv.de/perl/index.shtml
Viele Grüße, Rolf
gibt es einen SQL-Befehl mit dem man das Vorhandensein einer Tabelle innerhalb einer Access-Datenbank überprüfen kann?
kleine RandInfo: in TransactSQL vom SQLServer gibts es EXISTS, da wird in Scripten immer 'IF EXISTS SowiesoTable' abgefragt und der dann gedropt, wenn er mit einem Script neu erzeugt werden soll - Hintergrund ist dafür Fehlermeldungen und Abbruc bei Scripten zu vermeiden, falls zufällig eine Tabelle schon existiert
grüße domiberger
Hallo,
endlich mal ne brauchbare Antwort, das man hier immer Antworten auf nicht gestellte Fragen bekommt ist immer wieder verwunderlich. Vor allen Dingen bekommt man immer wieder Antworten von Leuten die von der Thematik keine Ahnung haben.
Du bist da wohl ne Ausnahme. Tausend Dank auch.
cucu
Thomas
Hallo Thomas
endlich mal ne brauchbare Antwort, das man hier immer Antworten auf nicht gestellte Fragen bekommt ist immer wieder verwunderlich. Vor allen Dingen bekommt man immer wieder Antworten von Leuten die von der Thematik keine Ahnung haben.
Na, ganz schoen heftig, oder? Leider wird Dir der TransactSQL-Dialekt bei MS Access auch nichts nuetzen. Zwar stammt beides aus dem Hause M$, aber Access-SQL und Transact sind so unterschiedlich wie Tag und Nacht.
In Access gibt es meines Wissens keinen SQL-Befehl, der soetwas testet. Ich erledige sowas daher gewoehnlich in Access-Basic:
Public Function DoesTableExist(tblname As String) As Boolean
Dim dbs as Database
Dim t As TableDef
Set dbs = CurrentDb
DoesTableExist = False
For Each t In dbs.TableDefs
If (t.name = tblname) Then DoesTableExist = True: Exit For
Next
Set dbs = Nothing
End Function
If DoesTableExist("tablename") Then DoCmd.RunSQL "DROP TABLE tablename;"
Mag sein, dass Du das nicht direkt gefragt hast, aber immerhin koennte es Dein Problem loesen. Alternativ kannst Du auch die Variante von Jens benutzen, also
On Error Resume Next
DoCmd.RunSQL "DROP TABLE tablename;"
On Error Goto 0 ' oder auf die vorherige Marke setzen
Die zweite Variante ist allerdings nicht ganz so sauber. Es kann durchaus vorkommen, dass die Tabelle sehr wohl existiert, jedoch nicht geloescht werden kann, weil sie gerade benutzt wird.
An Dominik: Weisst Du zufaellig, wie ich in TransactSQL eine Spalte einer Tabelle loeschen kann? In Access-SQL (und bei Oracle glaube ich auch) geht das mit
ALTER TABLE tablename DROP COLUMN columnname;
An Jens: Um alle Zeilen einer Tabelle zu loeschen, braucht man wirklich keine Schleife. Das geht auch mit
DELETE FROM tablename;
Ritsch ratsch sicnd alle Datensaetze weg.
Calocybe