sql >> Databáze >  >> RDS >> Sqlserver

Zkontrolujte typ parametru funkce oddílu v SQL Server (T-SQL)

Pokud máte na serveru SQL rozdělenou tabulku nebo index a chcete zkontrolovat typ parametru funkce oddílu, můžete použít sys.partition_parameters zobrazení systémového katalogu.

Toto zobrazení vrátí řádek pro každý parametr funkce oddílu.

Typ parametru by se měl shodovat nebo být implicitně převoditelný na datový typ rozdělovacího sloupce v tabulce nebo indexu.

Příklad

Zde je příklad, který ukazuje sloupce vrácené sys.partition_parameters zobrazit.

SELECT * FROM sys.partition_parameters;

Výsledek:

+---------------+----------------+------------------+--------------+-------------+---------+------------------+----------------+
| function_id   | parameter_id   | system_type_id   | max_length   | precision   | scale   | collation_name   | user_type_id   |
|---------------+----------------+------------------+--------------+-------------+---------+------------------+----------------|
| 65542         | 1              | 56               | 4            | 10          | 0       | NULL             | 56             |
+---------------+----------------+------------------+--------------+-------------+---------+------------------+----------------+

Mám pouze jednu funkci oddílu, takže se vrací pouze jeden řádek.

Zde je výsledek opět pomocí vertikálního výstupu (abyste nemuseli rolovat do stran):

function_id    | 65542
parameter_id   | 1
system_type_id | 56
max_length     | 4
precision      | 10
scale          | 0
collation_name | NULL
user_type_id   | 56

Získejte název typu

sys.partition_parameters view ve skutečnosti nevrací název typu. Vrátí ID typu. Ve skutečnosti vrací ID typu jak typu systému, tak typu definovaného uživatelem.

Naštěstí můžeme použít TYPE_NAME() funkce vrátit název každého.

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;

Výsledek (při použití vertikálního výstupu):

function_id    | 65542
parameter_id   | 1
System Type    | int
max_length     | 4
precision      | 10
scale          | 0
collation_name | NULL
User Type      | int

Vraťte název funkce

Můžeme se také připojit k sys.partition_functions view vrátí název funkce místo jejího 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;

Výsledek (při použití vertikálního výstupu):

name           | MoviesPartitionFunction
parameter_id   | 1
System Type    | int
max_length     | 4
precision      | 10
scale          | 0
collation_name | NULL
User Type      | int

  1. Načtení posledního záznamu v každé skupině - MySQL

  2. Jak vytvořit VARRAY jako databázový objekt v databázi Oracle

  3. Převést přístup na PostgreSQL?

  4. Vylepšení Service Broker v SQL Server 2016