К счастью, студия управления SQL Server подсказывает вам, как это сделать.
Сделай это,
- запустить трассировку SQL Server и открыть занятие, которое вы делаете (фильтр
по вашему логину, если вы не одиноки и установите имя приложения
в Microsoft SQL Server Management Studio), приостановить трассировку и отменить любые результаты, которые вы записали до сих пор;
- Затем щелкните правой кнопкой мыши таблицу и выберите свойство во всплывающем меню;
- начать трассировку снова;
- Теперь в SQL Server Management studio выберите элемент свойства хранилища слева;
Приостановите трассировку и посмотрите, что TSQL генерирует Microsoft.
В, вероятно, последнем запросе вы увидите оператор, начинающийся с exec sp_executesql N'SELECT
когда вы копируете исполняемый код в Visual Studio, вы заметите, что этот код генерирует все данные, которые инженеры Microsoft использовали для заполнения окна свойств.
когда вы сделаете умеренные изменения в этом запросе, вы получите что-то вроде этого:
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
Теперь запрос не идеален, и вы можете обновить его, чтобы он отвечал другим вашим вопросам. Дело в том, что вы можете использовать знания Microsoft, чтобы получить ответы на большинство ваших вопросов, выполнив интересующие вас данные. и проследить TSQL, сгенерированный с помощью профилировщика.
Мне нравится думать, что инженеры MS знают, как работает SQL-сервер, и он будет генерировать TSQL, который работает со всеми элементами, с которыми вы можете работать, используя версию на используемой вами SSMS, так что он довольно хорош для большого разнообразия выпусков. , настоящее и будущее.
И помните, не просто копируйте, постарайтесь понять это, иначе вы можете ошибиться.
Walter