jak usunąć wiele tabel ze wspólnym prefiksem w jednym zapytaniu?
<p>używam microsoft sql server 2008. moje pytanie brzmi: jak usunąć wiele tabel ze wspólnym prefiksem w jednym zapytaniu?</p><p>coś w rodzaju tych nazw tabel:</p><pre><code>lg\_001\_01\_stline, lg\_001\_02\_stfiche </code></pre>
<p>możesz zbudować ciąg za pomocą widoków katalogu, np .:</p><pre><code>declare @sql nvarchar(max) = n''; select @sql += ' drop table ' + quotename(s.name) + '.' + quotename(t.name) + ';' from sys.tables as t inner join sys.schemas as s on t.[schema\_id] = s.[schema\_id] where t.name like 'lg\_001%'; print @sql; -- exec sp\_executesql @sql; </code></pre><p>oczywiście istnieją potencjalne luki, na przykład jeśli te tabele mają powiązania z kluczem obcym, musisz je najpierw usunąć lub ustawić wyniki tak, aby tabele były usuwane w określonej kolejności.</p><p>aby uzyskać listę tabel, użyj:</p><pre><code>select s.name, t.name from sys.tables as t inner join sys.schemas as s on t.[schema\_id] = s.[schema\_id] where t.name like 'lg\_001%'; </code></pre>
Dajesz kursor na stronie od której chcesz zacząć i potem idziesz do Układ strony, znaki podziału, Następna strona i potem jak już to zaznaczysz to idziesz do Wstawianie i Numer strony a potem jeszcze raz do wstawianie, ale teraz wybierasz formatuj numery stron i dajesz 1 w tabelce, która wyskoczy w opcji Rozpocznij od. No i potem tylko ręcznie usuwasz numerki z pierwszych stron narzędzia --> wyczyść prywatne dane > wyczyść dane prywatne. 

;dd wpisz pierwszą literę tego czegoś, najedż na to w tej liście, która się otwiera i wciśnij delete


naj??? druga pewnie jest dla sprawdzenia poprwanosci odpowiedzi, kucze nie pamietam dokladnie tych komend ale sprobuj skopjowac je z tej gotowej tabelki i ewentualnie cos pozmieniaj- a dokladniej t wspolrzedne pol zeby sie zgadzaly (wstaw tylko w pierwszych ramkach a reszte zlap za jeden rog i przeciagnij to ci sie skopiuje dla innych wynikow) Próbując analizować HTML z wyrażeń regularnych jest na ogół *bardzo* zły pomysł. Użyj zamiast parser, nie powinno być jednym dostępny dla wybranego języka.


Państwo **może** być w stanie uciec z czymś takim:



```
</?tag[^>]*?>

```

Ale to zależy od tego co dokładnie robisz. Na przykład, że nie usunie zawartość tagu i może zostawić HTML w nieprawidłowym stanie, w zależności od znacznika starasz się usunąć. radzi sobie również z nieprawidłowym źle HTML (a jest to dużo, że około).


Użyj parser zamiast :) Jest to dość szerokie, ale dam ci tak ogólną odpowiedź, jak tylko mogę.

**CTE ...**

* Są niezindeksowalne (ale mogą używać istniejących indeksów na obiektach, do których istnieją odwołania)
* Nie można mieć ograniczeń
* Są zasadniczo jednorazowe `VIEW` s
* Trwać tylko do momentu uruchomienia następnego zapytania
* Może być rekurencyjny
* Nie masz dedykowanych statystyk (polegaj na statystykach dotyczących podstawowych obiektów)

**#Temp Tables ...**

* Są prawdziwe zmaterializowane tabele, które istnieją w tempdb
* Może być indeksowany
* Może mieć ograniczenia
* Trwaj w życiu obecnego POŁĄCZENIA
* Może odwoływać się do innych zapytań lub podprocedur
* Masz dedykowane statystyki generowane przez silnik

Jeśli chodzi o użycie każdego z nich, mają bardzo różne przypadki użycia.Jeśli masz bardzo duży zestaw wyników lub musisz odwołać się do niego więcej niż raz, umieść go w tabeli `#temp` .Jeśli ma być rekurencyjny, jednorazowy lub po prostu dla uproszczenia logicznego, preferowany jest `CTE` .

Ponadto należy `CTE`**nigdy nie używaj do wykonania**.Prawie nigdy nie przyspieszysz przy użyciu CTE, ponieważ znowu jest to widok jednorazowy.Możesz zrobić z nimi kilka fajnych rzeczy, ale przyspieszenie zapytania nie jest jednym z nich. Ok. Znalazłem to w czym problem.


Na początku myślałem, że to problem z DataProvided, ale to nie było. Odkryłem ten sam problem w SQLServer 2000 ....


Wyszukiwanie w google dowiedziałem się czegoś o plan wykonania. Biorąc w ten sposób, że zapytania zwiększyło wydajność 50%.


Krótki życiorys tego problemu jest to, że podczas wykonywania SP kodem, DBMS ma pewne problemy z planu wykonania, a nie korzystać z indeksów ...


Lepszą odpowiedź jest w tym poście:
 [Parametr Wąchania (lub Fałszowanie) w SQL Server](https://stackoverflow.com/questions/211355/parameter-sniffing-or-spoofing-in-sql-server)


Mam nadzieję, że to Ci pomoże. Polecam Ci tę poradę z dokładna instrukcją: [Jak usunąć konto Skype](/faq/9234-jak-usunac-konto-skype). Możesz to zrobić na stronie Bing albo z poziomu przeglądarki. Ta porada jest dla ciebie: [http://pl.ccm.net/faq/9874-jak-usunac-historie-wyszukiwania-w-bing](/faq/9874-jak-usunac-historie-wyszukiwania-w-bing) Z ograniczeniem, że klauzula warunek może być „coś”, to jesteś ograniczony do skanowania całą listę i stosując warunek.


Jeśli istnieją ograniczenia dotyczące klauzuli stan, wtedy można spojrzeć na organizowanie danych do bardziej efektywnie obsługiwać zapytań.


Na przykład, przykładowy kod z „byFirstLetter” słowniku nie pomaga w ogóle z „endswith” zapytania.


Więc tak naprawdę sprowadza się do tego, co pyta chcesz zrobić przed tymi danymi.


W bazach danych, problem ten jest ciężar „optymalizator zapytań”. W typowej bazy danych, jeśli masz bazę danych bez indeksów, oczywiście każde zapytanie będzie skan tabeli. Jak dodać indeksów w tabeli, optymalizator może użyć tych danych do bardziej wyrafinowanych zapytań planuje lepiej dostać się do danych. To w istocie problem, który opisujesz.


Gdy masz bardziej konkretny podzbiór typów kwerend następnie można zrobić lepszą decyzję, co struktura jest najlepsza. Ponadto, należy wziąć pod uwagę ilość danych. Jeśli masz listę 10 elementów każdy mniej niż 100 bajtów, skan wszystko może okazać się najszybciej, co można zrobić, ponieważ masz taką małą ilość danych. Oczywiście, że nie skaluje się do elementów 1M, ale nawet sprytnych technik dostępu nosić koszt w instalacji, konserwacji (jak utrzymanie indeksu) i pamięć.


**EDIT** , na podstawie komentarza


Jeśli jest to auto Nieukończenie, jeśli dane są statyczne, a następnie posortować je i używać przeszukiwanie binarne. Nie jesteś naprawdę dzieje się szybciej niż to.


Jeśli dane są dynamiczne, a następnie zapisać go w zrównoważonym drzewie, i szukać tego. To skutecznie wyszukiwanie binarne, a to pozwala zachować dodać dane losowo.


Coś jeszcze jest jakaś specjalność na tych pojęć.