Biorąc pod uwagę #, jak mogę dowiedzieć się, w której tabeli i kolumnie można go znaleźć?
Nie obchodzi mnie, czy jest szybki, po prostu musi działać.
sql-server
Allain Lalonde
źródło
źródło
Odpowiedzi:
To może ci pomóc . - od Narayana Vyasa. Przeszukuje wszystkie kolumny wszystkich tabel w danej bazie danych. Używałem go już wcześniej i działa.
To jest Zapisany Proc z powyższego linku - jedyną zmianą, którą wprowadziłem, było zastąpienie tabeli temp zmienną tabeli, więc nie musisz pamiętać, aby za każdym razem ją upuszczać.
źródło
Jeśli musisz uruchomić takie wyszukiwanie tylko raz, prawdopodobnie możesz użyć dowolnego skryptu pokazanego w innych odpowiedziach. Ale w innym przypadku polecam do tego wyszukiwanie ApexSQL . To darmowy dodatek SSMS i naprawdę zaoszczędził mi dużo czasu.
Przed uruchomieniem dowolnego skryptu należy go dostosować w zależności od typu danych, który chcesz wyszukać. Jeśli wiesz, że szukasz kolumny datetime, nie ma potrzeby przeszukiwania kolumn nvarchar. Przyspieszy to wszystkie powyższe zapytania.
źródło
Na podstawie odpowiedzi bnkdev zmodyfikowałem Kod Narayana, aby przeszukiwać wszystkie kolumny, nawet te numeryczne.
Będzie działał wolniej, ale ta wersja faktycznie znajduje wszystkie dopasowania, nie tylko te znalezione w kolumnach tekstowych.
Nie mogę wystarczająco podziękować temu facetowi. Zaoszczędził mi dni ręcznego wyszukiwania!
źródło
To jest moje niezależne podejście do tego pytania, które wykorzystuję do własnej pracy. Działa w SQL2000 i nowszych wersjach, pozwala na stosowanie symboli wieloznacznych, filtrowanie kolumn i przeszukuje większość normalnych typów danych.
Opis pseudokodu może być
select * from * where any like 'foo'
Nie umieszczam go w formie proc, ponieważ nie chcę go utrzymywać w setkach baz danych i tak naprawdę jest to praca ad hoc. Skomentuj poprawki błędów.
źródło
Zoptymalizowałem odpowiedź Allain Lalonde ( https://stackoverflow.com/a/436676/412368 ). Wartości liczbowe są nadal obsługiwane. Powinien być około 4-5 razy szybszy (1:03 vs 4:30), testowany na komputerze stacjonarnym z bazą danych 7 GB. http://developer.azurewebsites.net/2015/01/mssql-searchalltables/
źródło
To mój sposób na rozwiązanie tego pytania. Testowany na SQLServer2008R2
źródło
Dzięki za naprawdę przydatny skrypt.
Może być konieczne dodanie następującej modyfikacji do kodu, jeśli tabele zawierają pola niewymienialne:
Chris
źródło
Od jakiegoś czasu mam rozwiązanie, które ciągle ulepszam. Przeszukuje również w kolumnach XML, jeśli zostanie o to poproszony, lub przeszukuje wartości całkowite, jeśli podaje ciąg tylko liczb całkowitych.
Źródło: http://fullparam.wordpress.com/2012/09/07/fck-it-i-am-going-to-search-all-tables-all-collumns/
źródło
Kiedyś napisałem dla siebie narzędzie do robienia dokładnie tego:
a7 SqlTools
Jest darmowy i open-source:
link github
źródło
Tutaj bardzo słodkie i małe rozwiązanie:
==========================
źródło
Innym sposobem jest użycie JOIN i CURSOR:
źródło
Może być konieczne zbudowanie odwróconego indeksu dla bazy danych. Zapewnia się, że jest dość szybki.
źródło
Załóżmy, że jeśli chcesz uzyskać całą tabelę o nazwie nazwa kolumny zawiera logintime w bazie danych MyDatabase poniżej to przykładowy kod
źródło
Jeśli masz zainstalowany phpMyAdmin, użyj jego funkcji wyszukiwania .
Wybierz swoją bazę danych.
Upewnij się, że wybrałeś DataBase, a nie tabelę, w przeciwnym razie pojawi się zupełnie inne okno wyszukiwania.
źródło
źródło
Do celów programistycznych możesz po prostu wyeksportować wymagane dane tabel do jednego kodu HTML i dokonać bezpośredniego wyszukiwania.
źródło
Narzędzia klienta bazy danych (takie jak DBeaver lub phpMyAdmin ) często obsługują wyszukiwanie pełnotekstowe w całej bazie danych.
źródło