Afortunadamente, el estudio de administración de SQL Server le da una pista sobre cómo hacer esto. Hacer esto,
- inicie un rastreo de SQL Server y abra la actividad que está realizando (filtre por su ID de inicio de sesión si no está solo y configure el Nombre de la aplicación en Microsoft SQL Server Management Studio), pause el rastreo y descarte los resultados que haya registrado hasta ahora;
- Luego, haga clic derecho en una tabla y seleccione la propiedad del menú emergente;
- comenzar de nuevo la traza;
- Ahora en el estudio de SQL Server Management, seleccione el elemento de propiedad de almacenamiento a la izquierda;
Pause el seguimiento y eche un vistazo a lo que TSQL genera Microsoft.
En la última consulta probablemente verá una declaración que comienza con exec sp_executesql N'SELECT
Cuando copie el código ejecutado en Visual Studio, notará que este código genera todos los datos que los ingenieros de Microsoft utilizaron para llenar la ventana de propiedades.
cuando realice modificaciones moderadas a esa consulta, obtendrá algo como esto:
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
Ahora la consulta no es perfecta y puede actualizarla para cumplir con otras preguntas que pueda tener, el punto es que puede usar el conocimiento de microsoft para llegar a la mayoría de las preguntas que tiene ejecutando los datos que le interesan y rastrear el TSQL generado usando profiler.
Me gusta pensar que los ingenieros de MS saben cómo funciona el servidor SQL y generará TSQL que funciona en todos los elementos con los que puede trabajar utilizando la versión en SSMS que está utilizando, por lo que es bastante bueno en una gran variedad de versiones prerviouse, actual y futuro.
Y recuerde, no solo copie, intente comprenderlo también, de lo contrario podría terminar con la solución incorrecta.
Walter
dtProperties
etc. Como esas son tablas de "sistema", no quiero informar sobre ellas.