none
Drop Table bleibt bestehen RRS feed

  • Frage

  • Ich habe eine Tabelle mit 10.800 Zeilen erzeugt.

    Ich arbeite mit C# 2013.

    Diese Tabelle will ich nun mit Drop Table löschen.

    const string connString_synchron = "Data Source=(local);Integrated Security=SSPI;Initial Catalog=Zahlen;" + "MultipleActiveResultSets=True;Async=False";

    const string Tabelle_löschen = "DROP TABLE [Table_1]";

    SqlConnection

    conn_synchron = newSqlConnection(connString_synchron);

    SqlCommand Löschkommando = new SqlCommand(Tabelle_löschen, conn_synchron);

    conn_synchron.Open();

    Löschkommando.ExecuteNonQuery(); conn_synchron.Close();

    Ich erhalte dann den Rückgabewert -1

    Gleich danach erstelle ich die selbe Tabelle neu.

    const string connString1 = "Data Source=(local);Integrated Security=SSPI;Initial Catalog=Zahlen;"
                                          + "MultipleActiveResultSets=False;Async=False";
    SqlConnection conn1 = new SqlConnection(connString1);
    const string Tabelle_erstellen = "CREATE TABLE [Table_1] ([Zahl 1] TINYINT)";
    SqlCommand Erstellkommando = new SqlCommand(Tabelle_erstellen, conn1);
    conn1.Open();
    Erstellkommando.ExecuteNonQuery();
    Erstellkommando.Dispose();
    conn1.Close();
    

    Und oh Wunder, trotz löschen der Tabelle mit "Drop Table" und neuerstellen habe ich immer noch die selbe Tabelle mit den 10.800 Zeilen.

    Selbst als ich mit dem Microsoft SQL Server Management Tool die Tabelle gelöscht hatte und einmal überprüft hatte, mit dem roten Ausführungszeichen - Knopf, ob die Tabelle keine Einträge mehr hatte, die hatte ich auch nicht mehr. Zeilenzahl war 0, habe ich unter C# die Tabelle mit Create Table neu erstellt, hatte ich wieder dasselbe Problem - wieder 10.800 Zeilen.

    Was läuft da falsch?

    Speichert der SQL Server die Tabelle intern und füllt die dann automatisch wieder mit dem alten Kram auf?

    Ich will doch nur alle Zeilen gelöscht haben.

    Mit Async=True ist es genauso.

    Dienstag, 6. Oktober 2015 16:43

Antworten

  • Hallo,

    wie sieht Dein Connection String "connString_synchron" denn aus, steht da zufällig so was wie "AttachDbFileName" und/oder "UserInstance" drin? Dann arbeitest Du permanent mit einer (neuen) Kopie Deiner initialen Datenbank und Du kannst so viel Löschen wie Du willst, bei jedem Start / neuen Connection hast Du die initiale Datenbank wieder im Zugriff.


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Dienstag, 6. Oktober 2015 17:46

Alle Antworten

  • Hallo,

    wie sieht Dein Connection String "connString_synchron" denn aus, steht da zufällig so was wie "AttachDbFileName" und/oder "UserInstance" drin? Dann arbeitest Du permanent mit einer (neuen) Kopie Deiner initialen Datenbank und Du kannst so viel Löschen wie Du willst, bei jedem Start / neuen Connection hast Du die initiale Datenbank wieder im Zugriff.


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Dienstag, 6. Oktober 2015 17:46
  • Vielen Dank für den Tipp mit dem "User Instance".

    Hatte ich auch mal mit = False ausprobiert.

    Der Fehler lag jedoch ganz woanders - hatte es leider zu spät entdeckt.

     
    Mittwoch, 7. Oktober 2015 12:17