DROP TABLE in java

javama

Erfahrenes Mitglied
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:
Java:
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

Java:
SQLServerException: Es wurde kein Resultset von der Anweisung zurückgegeben.

hat jemand eine Idee ob die query überhaupt richtig ist?
danke im voraus
 
Zuletzt bearbeitet:
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?
 
Das findest du aber nicht so heraus. Das kommt auf die jeweilige Datenbank an. Bei MySQL kannst du folgendes machen:
SQL:
drop table if exists meine_tabelle;
Wenns die Tabelle gibt, dann wird se gelöscht, wenn nich, dann nich.

Bei anderen Datenbanken muss man da anders vorgeben. Bei Oracle z.B. müsste man erst mit
SQL:
select table_name from user_tables where table_name = 'meine_tabelle';
prüfen, ob die Tabelle existiert.

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.
 
weil ich diese tabelle noch mal erstellen möchte.
kann man in MS-SQL auch mit
Java:
DROP TABLE IF EXISTS meine_tabelle;
arbeiten
 
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.
 
Zurück