Czy istnieje sposób na wyszukanie jednej wartości (w moim przypadku jest to UID typu char(64)
) w dowolnej kolumnie dowolnej tabeli w jednej bazie danych MS SQL Server?
Siedzę przed ogromną bazą danych, nie mając pojęcia, w jaki sposób tabele musiały być ze sobą połączone. Aby się tego dowiedzieć, chciałbym wymienić wszystkie tabele i tam kolumny, które zawierają określoną wartość w dowolnym wierszu. Czy to jest możliwe?
Jednym ze sposobów mogłoby być po prostu zrzucenie całej bazy danych do pliku tekstowego i użycie dowolnego edytora tekstu do wyszukania wartości - ale byłoby to czystym bólem, gdyby baza danych była zbyt duża.
Odpowiedzi:
http://vyaskn.tripod.com/search_all_columns_in_all_tables.htm
EDYCJA: Oto rzeczywisty T-SQL, w przypadku rotacji linków:
źródło
Wszystkie wymienione poniżej narzędzia innych firm są w 100% bezpłatne.
Użyłem ApexSQL Szukaj z dobrym sukcesu poszukiwania obu obiektów i danych w tabelach. Zawiera kilka innych funkcji, takich jak diagramy relacji i takie…
Jednak działałem trochę wolno w przypadku dużych (40 GB bazy danych TFS) baz danych…
Oprócz tego istnieje również pakiet narzędzi SSMS, który oferuje wiele innych funkcji, które są całkiem przydatne, mimo że nie są one bezpośrednio związane z wyszukiwaniem tekstu.
źródło
Rozszerzyłem kod, ponieważ nie
record number
podano mi znaku „ ” i muszę go poprawić.źródło
Źródło: http://fullparam.wordpress.com/2012/09/07/fck-it-i-am-going-to-search-all-tables-all-collumns/
Mam rozwiązanie sprzed jakiegoś czasu, które ciągle ulepszam. Przeszukuje również kolumny XML, jeśli zostanie to nakazane, lub wyszukuje wartości całkowite, jeśli podaje łańcuch zawierający tylko liczby całkowite.
źródło
Znalazłem dość solidne rozwiązanie pod adresem https://gallery.technet.microsoft.com/scriptcenter/c0c57332-8624-48c0-b4c3-5b31fe641c58 , na które warto zwrócić uwagę. Przeszukuje kolumny tego typu: varchar, char, nvarchar, nchar, text. Działa świetnie i obsługuje wyszukiwanie w określonych tabelach, a także wiele wyszukiwanych haseł.
źródło
Na http://www.reddyss.com/SQLDownloads.aspx dostępny jest ładny skrypt
Aby móc go używać w dowolnej bazie danych, możesz ją utworzyć tak jak w: http://nickstips.wordpress.com/2010/10/18/sql-making-a-stored-procedure-available-to-all-databases/
Nie jestem pewien, czy istnieje inny sposób.
Aby go użyć, użyj czegoś takiego:
źródło
Po wypróbowaniu rozwiązania @ regeter i zobaczeniu, że nie rozwiązało ono mojego problemu, gdy szukałem klucza obcego / podstawowego, aby zobaczyć wszystkie tabele / kolumny, w których on istnieje, nie zadziałało. Po przeczytaniu, jak zawiodło się to dla innego, który próbował użyć unikalnego identyfikatora, dokonałem modyfikacji i oto zaktualizowany wynik: (działa zarówno z int, jak i guidami ... zobaczysz, jak łatwo rozszerzyć)
źródło