Se você tem uma tabela ou índice particionado no SQL Server e deseja verificar o tipo de parâmetro da função de partição, pode usar o
sys.partition_parameters
visualização do catálogo do sistema. Essa exibição retorna uma linha para cada parâmetro de uma função de partição.
O tipo de parâmetro deve corresponder ou ser implicitamente conversível para o tipo de dados da coluna de particionamento na tabela ou índice.
Exemplo
Aqui está um exemplo que mostra as colunas retornadas pelo
sys.partition_parameters
visualizar. SELECT * FROM sys.partition_parameters;
Resultado:
+---------------+----------------+------------------+--------------+-------------+---------+------------------+----------------+ | function_id | parameter_id | system_type_id | max_length | precision | scale | collation_name | user_type_id | |---------------+----------------+------------------+--------------+-------------+---------+------------------+----------------| | 65542 | 1 | 56 | 4 | 10 | 0 | NULL | 56 | +---------------+----------------+------------------+--------------+-------------+---------+------------------+----------------+
Eu tenho apenas uma função de partição e, portanto, apenas uma linha é retornada.
Aqui está o resultado novamente usando a saída vertical (para evitar que você tenha que rolar para os lados):
function_id | 65542 parameter_id | 1 system_type_id | 56 max_length | 4 precision | 10 scale | 0 collation_name | NULL user_type_id | 56
Obter o nome do tipo
Os
sys.partition_parameters
view não retorna o nome do tipo. Ele retorna o ID do tipo. Na verdade, ele retorna o ID do tipo do tipo de sistema e do tipo definido pelo usuário. Felizmente, podemos usar o
TYPE_NAME()
função para retornar o nome de cada um. 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;
Resultado (usando saída vertical):
function_id | 65542 parameter_id | 1 System Type | int max_length | 4 precision | 10 scale | 0 collation_name | NULL User Type | int
Retorne o nome da função
Também podemos juntar as
sys.partition_functions
view para retornar o nome da função em vez de seu 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;
Resultado (usando saída vertical):
name | MoviesPartitionFunction parameter_id | 1 System Type | int max_length | 4 precision | 10 scale | 0 collation_name | NULL User Type | int