Czy można wyszukiwać nazwy tabel zawierające kolumny
LIKE '%myName%'
?
sql
sql-server
tsql
system-tables
gruber
źródło
źródło
Odpowiedzi:
Wyszukaj tabele:
Wyszukaj tabele i widoki:
źródło
INFORMATION_SCHEMA
widoki zawarte w SQL Server są zgodne ze standardową definicją ISO dla Information_SCHEMA. ,sys.columns
,sys.tables
Jest Microsoft SQL Server specyficzny.TABLE_SCHEMA
na liście wybranych może być pomocne. Nadal +1, ponieważ to dobra odpowiedź.Możemy również użyć następującej składni:
źródło
INFORMATION_SCHEMA
jest to część standardu ANSISQL Server:
Wyrocznia:
Używam go CAŁY czas, aby znaleźć WSZYSTKIE wystąpienia nazwy kolumny w danej bazie danych (schemacie).
źródło
To da ci trochę dodatkowych informacji o schemacie, tabelach i kolumnach, które możesz, ale nie chcesz, użyć dodatkowych warunków w klauzuli where do filtrowania. Na przykład, jeśli chcesz zobaczyć tylko pola, które muszą mieć wartości dodane
Możesz dodać inne warunki, dodałem również kolumny w klauzuli select w ten pionowy sposób, dzięki czemu łatwo było zmienić kolejność, usunąć, zmienić nazwę lub dodać inne w zależności od potrzeb. Alternatywnie możesz wyszukać tylko tabele, używając T.Name. Jest bardzo konfigurowalny.
Cieszyć się.
źródło
To powinno działać:
źródło
sys.tables
zamiastsysobjects
(który jest przestarzały od SQL Server 2005)Jeśli bardziej lubisz narzędzia innych firm, istnieje wiele opcji, takich jak:
Są one bardzo przydatne, jeśli baza danych zawiera zaszyfrowane obiekty (widoki, procedury, funkcje), ponieważ nie można ich łatwo wyszukać za pomocą tabel systemowych.
źródło
Nie wiem, dlaczego tak wielu z was sugeruje dołączenie do
sys.table with sys.columns
was, wystarczy użyć poniższego kodu:Select object_name(object_id) as TableName,* from SYS.columns where name LIKE '%MyName%'
lub
Jeśli chcesz również nazwę schematu:
źródło
Jeśli chcesz po prostu nazwę tabeli, możesz uruchomić:
Jeśli chcesz również nazwę schematu (co w wielu przypadkach będziesz chciał, ponieważ będziesz mieć wiele różnych schematów i jeśli nie pamiętasz każdej tabeli w bazie danych i miejsca, w którym ona należy, może to być przydatne):
i na koniec, jeśli chcesz mieć ładniejszy format (chociaż w tym miejscu kod (moim zdaniem) staje się zbyt skomplikowany, aby łatwo go pisać):
Uwaga: możesz również utworzyć funkcję na podstawie tego, co mam:
Warto zauważyć, że funkcja konkat została dodana w 2012 roku. W 2008r2 i wcześniejszych użyj + do konkatenacji ciągów.
Od czasu, gdy to opublikowałem, sformatowałem nieco proc. Jest teraz trochę bardziej zaawansowany, ale wygląda na bardziej chaotyczny (ale jest w procedurze, więc nigdy go nie zobaczysz) i jest lepiej sformatowany.
Ta wersja pozwala mieć ją w administracyjnej bazie danych, a następnie przeszukiwać dowolną bazę danych. Zmień declerację
@db
z'master'
na dowolną, dla której ma być domyślna baza danych (UWAGA: użycie funkcji CONCAT () będzie działać tylko z 2012+, chyba że zmienisz konkatenację ciągów, aby korzystać z+
operatorów).źródło
Pochodzi z bloga Pinal Sir
źródło
źródło
Można go znaleźć w INFORMACJE_SCHEMA.KOLUMNY według filtru nazwa_kolumny
źródło
źródło
Poniższe zapytanie da ci dokładne nazwy tabel bazy danych o nazwie pola jak „% mojaNazwa”.
źródło
Aby uzyskać pełne informacje: nazwa kolumny, nazwa tabeli oraz schemat tabeli ..
źródło
właśnie próbowałem i to działa idealnie
Zmień tylko YourDatbaseName na bazę danych, a YourcolumnName na nazwę kolumny, której szukasz, zachowaj ją bez zmian.
Mam nadzieję, że to pomogło
źródło
źródło
Użyłem tego w tym samym celu i zadziałało:
źródło
Mam nadzieję, że nie jest to duplikat odpowiedzi, ale lubię generować instrukcję sql w instrukcji sql, która pozwoli mi wyszukać wartości, których szukam (nie tylko tabele z tymi nazwami pól (jak zwykle konieczne, aby następnie usunąć wszelkie informacje związane z identyfikatorem nazwy kolumny, której szukam):
Następnie mogę skopiować i wkleić moją pierwszą kolumnę „SQLToRun” ... następnie zastępuję „Select * from” „Delete from” i pozwala mi to usunąć wszelkie odniesienia do tego podanego identyfikatora! Zapisz te wyniki w pliku, abyś mieć je na wszelki wypadek.
UWAGA **** Upewnij się, że wyeliminowałeś wszystkie tabele bakup przed uruchomieniem instrukcji usuwania ...
źródło
źródło
Podobnie jak wyrocznia, możesz znaleźć tabele i kolumny za pomocą tego:
źródło
Chciałem czegoś na stoły i widoki, które nie spowodowałyby krwawienia moich oczu.
Pytanie
Wynik
źródło
Aby poprawić powyższe odpowiedzi, dołączyłem również widoki i połączyłem schemat oraz tabelę / widok, aby wyniki były bardziej widoczne.
źródło
Możesz spróbować tego zapytania:
źródło
Oto odpowiedź na twoje pytanie
źródło
źródło
Oto działające rozwiązanie dla bazy danych Sybase
źródło
Możemy użyć
sp_columns
do tego celu.źródło
Zapytanie SQL, aby wyświetlić wszystkie tabele, które określiły nazwę kolumny:
źródło