[MsSQL] Szukanie w całej bazie danych

0

Witam. Mam aplikację korzystającą z bazy danych. Działanie aplikacji jest "czarną skrzynką". Baza danych jest potwornie rozrośnięta (460 tabel, każda po kilkanaście kolumn). Nazwy tabel i kolumn niewiele mówią.

Muszę odnaleźć, w którym miejscu zapisywana jest pewna informacja (która tabela i kolumna). Informacją jest numer seryjny urządzenia, czyli dosyć długi i unikatowy string.

Czy jest jakaś metoda, żeby przeszukać wszystkie tabele i wszystkie kolumny w poszukiwaniu jednego stringu?

0

Tak.

Tworzysz kursor, wyciagasz z sys.tables nazwy tabel, z sys.columns nazwy kolumn kazdej tabeli, w sys.types sprawdzasz, ktory typ to string (bo nie pamietam) i z tego wszystkiego sklecasz stringa z zapytaniem + where po kolumnie i wartosci. Zapytanie odpalasz przez exec(@sql) i tak dla wszystkich tabel i kolumn pasujacych do typu (bo nie kazdy typ moze sie dac przyrownac do stringa).

0
SELECT OBJECT_NAME(O.id), C.name FROM sysobjects O, syscolumns C
WHERE O.id = C.id 
          AND O.xType = 'U' -- tabela
          AND C.xType IN ()  -- tytaj typy varchar, nvarchar, text itp z tabeli systypes

1 użytkowników online, w tym zalogowanych: 0, gości: 1