Używam Microsoft SQL Server 2008. Moje pytanie brzmi: jak usunąć wiele tabel ze wspólnym prefiksem w jednym zapytaniu?
coś w rodzaju tych nazw tabel:
LG_001_01_STLINE,
LG_001_02_STFICHE
sql-server
sql-server-2008
drop-table
Wiolonczela
źródło
źródło
Uruchomiłem to zapytanie, a następnie wkleiłem wyniki z powrotem do okna zapytania, aby usunąć wszystkie tabele:
Jeśli chcesz usunąć wszystkie tabele, ale zachowaj te o nazwach zaczynających się od A, B, C lub D:
źródło
Pozwala to usunąć znacznie większą liczbę tabel.
źródło
Podoba mi się ten, który napisałem:
źródło
STATIC
i / lubLOCAL FAST_FORWARD
] ( sqlperformance.com/2012/09/t-sql-queries/cursor-options ). (3) Nie powinieneś używać przestarzałych widoków kompatybilności wstecznej, takich jaksysindexes
. (4) W skrypcie założono, że wszystkie tabele znajdują się wdbo
schemacie (lub, co gorsza, domyślnym schemacie wykonującego użytkownika, który może nawet nie byćdbo
).Można to zrobić
execute
w następujący sposób:źródło
dbo
, i 2) nazwy nigdy nie mogą zawierać]
- oba mogą być prawdziwe w przypadku PO, ale nadal byłby dobry warto wspomnieć o tych założeniach, ponieważ wynikające z nich ostrzeżenia mogą nie być całkowicie oczywiste dla innych ludzi. Jednak, jak powiedziałem na początku, moim głównym problemem z tą odpowiedzią jest to, że po prostu przekształca ona już istniejącą sugestię, nie dodając żadnej nowej wartości.Uruchom powyższe zapytanie i zapisz wyniki w pliku CSV. Następnie otwórz ten plik CSV w notatniku. Następnie wykonaj kombinację klawiszy Ctrl + H, aby zastąpić schemat SCHEMATEM TABELI DROP, który dostarczy Ci wszystkich zapytań upuszczania, skopiuj i wklej tę dużą sql do narzędzia SQL i uruchom
jeśli twoje wyniki są
po zamianie będzie to wyglądać tak
źródło
PRINT
instrukcji. W jaki sposób twoja odpowiedź jest lepsza niż najwyżej głosowana odpowiedź?