Als u een gepartitioneerde tabel of index in SQL Server hebt en u wilt het parametertype van de partitiefunctie controleren, kunt u de sys.partition_parameters
gebruiken systeemcatalogusweergave.
Deze weergave retourneert een rij voor elke parameter van een partitiefunctie.
Het parametertype moet overeenkomen met of impliciet converteerbaar zijn naar het gegevenstype van de partitioneringskolom in de tabel of index.
Voorbeeld
Hier is een voorbeeld dat de kolommen toont die worden geretourneerd door de sys.partition_parameters
bekijken.
SELECT * FROM sys.partition_parameters;
Resultaat:
+---------------+----------------+------------- -----+--------------+-------------+---------+----- -------------+----------------+| functie_id | parameter_id | system_type_id | max_lengte | precisie | schaal | collatienaam | user_type_id ||---------------+----------------+-------------- ----+--------------+-------------+---------+------ ------------+----------------|| 65542 | 1 | 56 | 4 | 10 | 0 | NULL | 56 |+---------------+----------------+-------------- ----+--------------+-------------+---------+------ ------------+----------------+
Ik heb maar één partitiefunctie en dus wordt er maar één rij geretourneerd.
Hier is het resultaat opnieuw met verticale uitvoer (om te voorkomen dat u zijwaarts hoeft te scrollen):
function_id | 65542parameter_id | 1system_type_id | 56max_lengte | 4precisie | 10schaal | 0collatienaam | NULLuser_type_id | 56
Haal de typenaam op
De sys.partition_parameters
view geeft niet echt de typenaam terug. Het retourneert de type-ID. In feite retourneert het de type-ID van zowel het systeemtype als het door de gebruiker gedefinieerde type.
Gelukkig kunnen we de TYPE_NAME()
. gebruiken functie om de naam van elk terug te geven.
SELECT
function_id,
parameter_id,
TYPE_NAME(system_type_id) AS [System Type],
max_length,
precision,
scale,
collation_name,
TYPE_NAME(user_type_id) AS [User Type]
FROM sys.partition_parameters;
Resultaat (met verticale uitvoer):
function_id | 65542parameter_id | 1Systeemtype | intmax_length | 4precisie | 10schaal | 0collatienaam | NULLGebruikerstype | int
Retourneer de functienaam
We kunnen ook lid worden van de sys.partition_functions
weergave om de functienaam te retourneren in plaats van de ID.
SELECT
pf.name,
pp.parameter_id,
TYPE_NAME(pp.system_type_id) AS [System Type],
pp.max_length,
pp.precision,
pp.scale,
pp.collation_name,
TYPE_NAME(pp.user_type_id) AS [User Type]
FROM sys.partition_parameters pp
INNER JOIN sys.partition_functions pf
ON pf.function_id = pp.function_id;
Resultaat (met verticale uitvoer):