Która tabela wykorzystuje filestream?

31-sty-2014

Poniżej kilka zapytań, które pomogą wykonać pierwsze kroki przy troulbeshootingu tabel wykorzystujących filestream:

Parę informacji o grupie plików typu FILESTREAM:

select * from sys.data_spaces where type=’FD’;

Gdzie znajdują się pliki i katalogi, w których SQL server przechowuje dane FILESTREAM:

select * from sys.database_files where type = 2;

Jakie tabele korzystają z filestream:

select * from sys.tables where filestream_data_space_id is not null

Jakie kolumny tabel zawierają dane przechowywane w FILESTREAM:

select * from sys.columns where is_filestream =1

Połączenie oby wyników powyżej razem – które tabele i jakie kolumny tych tabel korzystają z filestream

select t.name, c.name from sys.columns c

join sys.tables t ON t.object_id=c.object_id

where is_filestream=1

I wreszczie próbny odczyt danych z kolumny typu FILESTREAM:

SELECT *, CAST (FileContent AS VARCHAR(MAX))FROM MyTable

Gdyby coś było nie tak z rekordem (np. ktoś usunął plik z dysku), to w/w zapytanie się nie uda i pozwoli ci ustalić, który rekord zawiera braki.

Komentarze są wyłączone

Autor: Rafał Kraik