Cóż szczęście SQL Server daje wskazówkę na jak to zrobić. Czyńcie to,
- rozpocząć śledzenie SQL Server i otwórz aktywność robisz (filtr przez logowania ID, jeśli nie jesteś sam i ustawić nazwę aplikacji Microsoft SQL Server Management Studio), pauza śledzić i odrzucić wszelkie wyniki, które zapisałeś do tej pory;
- Następnie kliknij prawym przyciskiem myszy tabelę i wybierz właściwość z wyskakującego menu;
- ponownie rozpocznij śledzenie;
- Teraz w SQL Server Management studio wybierz element właściwości magazynu po lewej;
Zatrzymaj śledzenie i zobacz, co TSQL jest generowane przez Microsoft.
W prawdopodobnie ostatniego zapytania widać oświadczenie zaczynając exec sp_executesql N'SELECT
podczas kopiowania wykonywany kod do visual studio można zauważyć, że ten kod generuje wszystkie dane inżynierowie Microsoft używane do wypełnienia okna właściwości .
podczas dokonywania umiarkowanych modyfikacje tego zapytania będzie można dostać się do mniej więcej tak:
SELECT
SCHEMA_NAME(tbl.schema_id)+'.'+tbl.name as [table], --> something I added
p.partition_number AS [PartitionNumber],
prv.value AS [RightBoundaryValue],
fg.name AS [FileGroupName],
CAST(pf.boundary_value_on_right AS int) AS [RangeType],
CAST(p.rows AS float) AS [RowCount],
p.data_compression AS [DataCompression]
FROM sys.tables AS tbl
INNER JOIN sys.indexes AS idx ON idx.object_id = tbl.object_id and idx.index_id < 2
INNER JOIN sys.partitions AS p ON p.object_id=CAST(tbl.object_id AS int) AND p.index_id=idx.index_id
LEFT OUTER JOIN sys.destination_data_spaces AS dds ON dds.partition_scheme_id = idx.data_space_id and dds.destination_id = p.partition_number
LEFT OUTER JOIN sys.partition_schemes AS ps ON ps.data_space_id = idx.data_space_id
LEFT OUTER JOIN sys.partition_range_values AS prv ON prv.boundary_id = p.partition_number and prv.function_id = ps.function_id
LEFT OUTER JOIN sys.filegroups AS fg ON fg.data_space_id = dds.data_space_id or fg.data_space_id = idx.data_space_id
LEFT OUTER JOIN sys.partition_functions AS pf ON pf.function_id = prv.function_id
Teraz zapytanie nie jest idealny i można go zaktualizować do spełnienia inne pytania można mieć, chodzi o to, możesz wykorzystać wiedzę z Microsoft Microsoftu, aby uzyskać większość pytań, które masz, wykonując dane, które Cię interesują, i śledzić TSQL wygenerowany za pomocą profilera.
Myślę, że inżynierowie MS wiedzą, jak działa serwer SQL, i wygeneruje TSQL, który działa na wszystkich elementach, z którymi można pracować, używając wersji na SSMS, z której korzystasz, więc jest całkiem niezły w wielu wydaniach. prerwium, obecne i przyszłe.
Pamiętaj, nie kopiuj, spróbuj zrozumieć, jak również możesz znaleźć niewłaściwe rozwiązanie.
Walter
dzięki marc_s, które powinny być łatwiejsze do zarządzania – kristof
Każdy pomysł, dlaczego filtruje tabele o nazwie zaczynającej się od "dt"? Widziałem ten skrypt w całej sieci, ale żadnych wyjaśnień na temat tych kryteriów. Czy wszyscy jesteśmy trolled? – Skaue
@Skaue: jeśli zainstalujesz funkcję "Diagram bazy danych" w swojej bazie danych, będziesz miał kilka tabel, takich jak 'dtProperties' i tak dalej; ponieważ są to tabele "systemowe", nie chcę ich zgłaszać. –