Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Kiểm tra loại tham số của hàm phân vùng trong SQL Server (T-SQL)

Nếu bạn có một bảng hoặc chỉ mục được phân vùng trong SQL Server và bạn muốn kiểm tra loại tham số của hàm phân vùng, bạn có thể sử dụng sys.partition_parameters chế độ xem danh mục hệ thống.

Dạng xem này trả về một hàng cho mỗi tham số của một hàm phân vùng.

Kiểu tham số phải khớp hoặc có thể chuyển đổi hoàn toàn thành kiểu dữ liệu của cột phân vùng trong bảng hoặc chỉ mục.

Ví dụ

Dưới đây là một ví dụ hiển thị các cột được trả về bởi sys.partition_parameters xem.

SELECT * FROM sys.partition_parameters;

Kết quả:

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

Tôi chỉ có một chức năng phân vùng và vì vậy chỉ một hàng được trả về.

Đây là kết quả một lần nữa sử dụng đầu ra dọc (để giúp bạn không phải cuộn sang ngang):

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

Lấy tên loại

sys.partition_parameters chế độ xem không thực sự trả lại tên loại. Nó trả về loại ID. Trên thực tế, nó trả về ID loại của cả loại hệ thống và loại do người dùng xác định.

May mắn thay, bạn, chúng tôi có thể sử dụng TYPE_NAME() hàm để trả về tên của mỗi.

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;

Kết quả (sử dụng đầu ra dọc):

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

Trả về tên hàm

Chúng tôi cũng có thể tham gia sys.partition_functions xem để trả về tên hàm thay vì ID của nó.

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;

Kết quả (sử dụng đầu ra dọc):

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. Hàm tổng hợp MIN và MAX trong SQL Server

  2. Đếm số lượng giá trị xuất hiện liên tiếp trong bảng

  3. Thủ thuật nhanh và tốt nhất để khôi phục tệp SQL Server MDF

  4. SQL Server:chuyển đổi ((int) year, (int) month, (int) day) thành Datetime

  5. Thêm một cột được tính toán vào một bảng hiện có trong SQL Server