sql >> Database teknologi >  >> RDS >> Sqlserver

Kontroller parametertypen for en partitionsfunktion i SQL Server (T-SQL)

Hvis du har en partitioneret tabel eller et indeks i SQL Server, og du vil kontrollere parametertypen for partitionsfunktionen, kan du bruge sys.partition_parameters systemkatalogvisning.

Denne visning returnerer en række for hver parameter i en partitionsfunktion.

Parametertypen skal matche eller være implicit konverterbar til datatypen for partitioneringskolonnen i tabellen eller indekset.

Eksempel

Her er et eksempel, der viser kolonnerne returneret af sys.partition_parameters se.

SELECT * FROM sys.partition_parameters; 

Resultat:

+---------------+----------------+------------- -----+--------------+----------------------- --------------+----------------+| funktions-id | parameter_id | system_type_id | max_længde | præcision | skala | samlingsnavn | user_type_id ||---------------+----------------+------------- ----+--------------+--------------+------------ ------------+----------------|| 65542 | 1 | 56 | 4 | 10 | 0 | NULL | 56 |+---------------+----------------+------------- ----+--------------+--------------+------------ ------------+----------------+

Jeg har kun én partitionsfunktion, og derfor returneres kun én række.

Her er resultatet igen ved hjælp af lodret output (for at spare dig for at skulle rulle sidelæns):

funktions-id | 65542parameter_id | 1system_type_id | 56max_længde | 4præcision | 10 skala | 0sorteringsnavn | NULLuser_type_id | 56

Hent typenavnet

sys.partition_parameters view returnerer faktisk ikke typenavnet. Det returnerer type-id'et. Faktisk returnerer den type-id'et for både systemtypen og den brugerdefinerede type.

Heldigvis kan du bruge TYPE_NAME() funktion for at returnere navnet på hver.

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; 

Resultat (ved hjælp af lodret output):

funktions-id | 65542parameter_id | 1Systemtype | intmax_length | 4præcision | 10 skala | 0sorteringsnavn | NULLUser Type | int

Returner funktionsnavnet

Vi kan også tilslutte os sys.partition_functions view for at returnere funktionsnavnet i stedet for dets 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; 

Resultat (ved hjælp af lodret output):

navn | MoviesPartitionFunctionparameter_id | 1Systemtype | intmax_length | 4præcision | 10 skala | 0sorteringsnavn | NULLUser Type | int
  1. Sådan drager du fordel af de nye partitioneringsfunktioner i PostgreSQL 11

  2. Forstå Cloud-baseret SQL Server Performance Monitoring

  3. lokale samlingstyper er ikke tilladt i SQL-sætninger

  4. opdele alfa og numerisk ved hjælp af sql