Wie um zu überprüfen, ob eine Tabelle leer ist und wenn dem so ist, löschen Sie alle Zeilen in SQL Server 2008?
Schreibe ich eine Reihe von SQL-insert-Anweisungen in Microsoft SQL Server Management Studio 2008. Meine Frage ist: Wie kann ich überprüfen, um zu sehen, wenn Sie eine vorhandene Tabelle, in der alle Zeilen, und wenn dem so ist, löschen Sie alle Zeilen dann weiter mit meiner insert-Anweisungen?
Bascially, ich bin auf der Suche nach einer Anweisung, dies zu tun wäre:
Wenn "greek_organizations" hat Daten
löschen Sie alle Zeilen
Danke für die Hilfe!
- Warum die Mühe? Löschen Sie alle Zeilen. Wenn die Tabelle leer ist, ist es kaum Ressourcen, und wenn nicht, ist es sinnlos zu prüfen. Löschen Sie einfach die Zeilen und bewegen auf.
- Sie können verwenden Sie truncate greek_organizations, das wäre schneller, als es keine Transaktion beteiligt.
- das ist nicht wahr. Sie wissen nicht, ob die OP wird über eine Transaktion oder nicht (der hat null Einfluß auf die performance hier). Es kann auch sein, fremde Schlüssel, die verhindern, dass das abschneiden.
- Aber wenn die Tabelle leer ist, wird ein löschen braucht nicht mehr Ressourcen als ein Graf.
- Sie können nicht verwenden Sie truncate, wenn es FK-Beziehungen
- du hast Recht
- das ist richtig. nehmen wird wieder mein Kommentar.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie
EXISTS
zu überprüfen:TOP 1
?Ich Stimme mit den vorherigen Poster. Der daraus resultierende Zustand der Tabelle immer leer.. man sollte Also immer Abschneiden der Tabelle... Obs würde ich überprüfen, um sicherzustellen, die Tabelle vorhanden ist, bevor mit dem Abschneiden
Aber dies ist die wirkliche Lösung:
Deine Frage zu beantworten:
Warum, um zu überprüfen, ob die Tabelle alle Datensätze? Sie können schreiben Sie einfach eine delete-Abfrage, die löscht alle Einträge vor dem einfügen von Abfragen.
Einen schnelleren Weg, zu überprüfen, Zeilenanzahl wäre so etwas wie .....
oder