Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Sprawdź typ parametru funkcji partycji w SQL Server (T-SQL)

Jeśli masz partycjonowaną tabelę lub indeks w SQL Server i chcesz sprawdzić typ parametru funkcji partycji, możesz użyć sys.partition_parameters widok katalogu systemowego.

Ten widok zwraca wiersz dla każdego parametru funkcji partycji.

Typ parametru powinien być zgodny lub niejawnie konwertowany na typ danych kolumny partycjonowania w tabeli lub indeksie.

Przykład

Oto przykład pokazujący kolumny zwrócone przez sys.partition_parameters widok.

SELECT * FROM sys.partition_parameters;

Wynik:

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

Mam tylko jedną funkcję partycji, więc zwracany jest tylko jeden wiersz.

Oto wynik ponownie przy użyciu wyjścia pionowego (aby uniknąć konieczności przewijania na boki):

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

Pobierz nazwę typu

sys.partition_parameters widok w rzeczywistości nie zwraca nazwy typu. Zwraca identyfikator typu. W rzeczywistości zwraca identyfikator typu zarówno typu systemu, jak i typu zdefiniowanego przez użytkownika.

Na szczęście możemy użyć TYPE_NAME() funkcja zwracająca nazwę każdego z nich.

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;

Wynik (przy użyciu wyjścia pionowego):

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

Zwróć nazwę funkcji

Możemy również dołączyć do sys.partition_functions view, aby zwrócić nazwę funkcji zamiast jej identyfikatora.

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;

Wynik (przy użyciu wyjścia pionowego):

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przypadki użycia instrukcji MERGE programu SQL Server:synchronizowanie tabel online i historii

  2. Wzorzec regex wewnątrz funkcji SQL Replace?

  3. Utwórz bazę danych w SQL Server 2017

  4. Jak wywołać procedurę składowaną w widoku?

  5. Liczenie wierszy dla wszystkich tabel jednocześnie