ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
517
517
EMPFEHLEN
-
ich möchte eine tabelle in Datenbak löschen.
ich möchte erstmal abfragen ob die tabelle vorhanden ist und erst dann löschen.
das geht ja so vielleicht:
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14
String query1 = "IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].["+kunde+"]'))"+ "DROP TABLE [dbo].["+kunde+"]"; start(); System.out.println(asdzStatement.executeQuery(query1)); ResultSet rs = asdzStatement.executeQuery(query1); while(rs.next() { System.out.println("rs: "+rs); } rs.close; stop();
ich bkomme
Code java:1
SQLServerException: Es wurde kein Resultset von der Anweisung zurückgegeben.
hat jemand eine Idee ob die query überhaupt richtig ist?
danke im vorausGeändert von javama (16.12.11 um 10:28 Uhr)
-
16.12.11 10:43 #2
- Registriert seit
- Dec 2009
- Beiträge
- 125
hi,
kopier einfach mal diesen Query String in einen SQL-Client und du wirst sehen, dass da nichts zurückkomt, was soweit aber auch korrekt ist.
Im Prinzip musst du also nur das query absetzen und gut ist, den Rest erledigt ja das DBMS. Warum du aber über das Resultset iterieren willst ist mir nicht ganz klar.
Gruß Sebastian
-
ich möchte wissen was resultset zurückgibt ob die tabelle vorhanden ist oder nicht , und wenn ja dann ob die tabelle gelöscht wurde, wie kann man das erreichen?
-
16.12.11 11:54 #4
Das findest du aber nicht so heraus. Das kommt auf die jeweilige Datenbank an. Bei MySQL kannst du folgendes machen:
Wenns die Tabelle gibt, dann wird se gelöscht, wenn nich, dann nich.Code sql:1
DROP TABLE IF EXISTS meine_tabelle;
Bei anderen Datenbanken muss man da anders vorgeben. Bei Oracle z.B. müsste man erst mit
prüfen, ob die Tabelle existiert.Code sql:1
SELECT TABLE_NAME FROM user_tables WHERE TABLE_NAME = 'meine_tabelle';
Aber mal ehrlich, was hast du davon, das zu wissen, wenn der nächste Schritt eh das Löschen ist? Schieß das Löschen einfach ab und entweder es klappt oder du bekommst ne Exception geworfen, weil die Tabelle nicht existiert (oder weil das SQL falsch war). Daher das SQL einfach auf die Datenbank loslassen und fertig. Die Mühe auf die Tabelle zu prüfen würde ich mir nur machen, wenn ich zuvor was mit der Tabelle anstellen will, aber da kann man meist auch nen Trigger vor schalten, der das dann managed.Man sagt, das Schwert eines Samurai sei seine Seele ...
Mit den Beiträgen ist es wie mit Schwertern: Je besser die Rohstoffe sind und je öfter man diese bearbeitet, desto hochwertiger sind sie.
Das Schmieden ist eine Kunst; Das Schreiben auch ;)
-
weil ich diese tabelle noch mal erstellen möchte.
kann man in MS-SQL auch mit
arbeitenCode java:1
DROP TABLE IF EXISTS meine_tabelle;
-
16.12.11 15:05 #6
Die Antwort ist und bleibt die selbe: Einfach das DROP-SQL gegen die Datenbank feuern, entweder existiert die Tabelle und wird gelöscht oder sie existiert nicht und die bekommst ne Exception, die du abfangen kannst. Ein CREATE kannst du dannach immer noch abschicken, dafür musst du nich wissen, ob die Tabelle existiert.
Man sagt, das Schwert eines Samurai sei seine Seele ...
Mit den Beiträgen ist es wie mit Schwertern: Je besser die Rohstoffe sind und je öfter man diese bearbeitet, desto hochwertiger sind sie.
Das Schmieden ist eine Kunst; Das Schreiben auch ;)
Ähnliche Themen
-
[MySQL] DROP TABLE IF EXISTS temp_table - gibt einen Fehler...
Von Herr_M im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 20.02.09, 08:53 -
Drag/Drop Tree -> Table: Wie bekomme ich den Spaltenindex?
Von dennisalcapone im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 3Letzter Beitrag: 15.02.05, 20:53 -
DROP TABLE mit LIKE in mysql
Von sheaven im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 23.10.02, 23:05 -
drop table?
Von nordi im Forum PHPAntworten: 5Letzter Beitrag: 17.09.02, 19:45 -
drop table ?
Von DoppelX im Forum PHPAntworten: 2Letzter Beitrag: 17.09.02, 16:05





Zitieren
Login





