Wenn Sie eine partitionierte Tabelle oder einen Index in SQL Server haben und den Parametertyp der Partitionsfunktion überprüfen möchten, können Sie die sys.partition_parameters
verwenden Systemkatalogansicht.
Diese Ansicht gibt eine Zeile für jeden Parameter einer Partitionsfunktion zurück.
Der Parametertyp sollte mit dem Datentyp der Partitionierungsspalte in der Tabelle oder im Index übereinstimmen oder implizit in diesen konvertierbar sein.
Beispiel
Hier ist ein Beispiel, das die von sys.partition_parameters
zurückgegebenen Spalten zeigt ansehen.
SELECT * FROM sys.partition_parameters;
Ergebnis:
Ich habe nur eine Partitionsfunktion und daher wird nur eine Zeile zurückgegeben.
Hier ist das Ergebnis noch einmal mit vertikaler Ausgabe (um Ihnen das seitliche Scrollen zu ersparen):
Funktions-ID | 65542parameter_id | 1system_type_id | 56max_länge | 4Präzision | Maßstab 10 | 0sortierungsname | NULLuser_type_id | 56
Erhalten Sie den Typnamen
Die sys.partition_parameters
view gibt nicht wirklich den Typnamen zurück. Es gibt die Typ-ID zurück. Tatsächlich gibt es die Typ-ID sowohl des Systemtyps als auch des benutzerdefinierten Typs zurück.
Glücklicherweise können wir den TYPE_NAME()
verwenden Funktion, um den Namen von jedem zurückzugeben.
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;
Ergebnis (bei vertikaler Ausgabe):
Funktions-ID | 65542parameter_id | 1Systemtyp | intmax_länge | 4Präzision | Maßstab 10 | 0sortierungsname | NULLBenutzertyp | int
Funktionsnamen zurückgeben
Wir können auch den sys.partition_functions
beitreten view, um den Funktionsnamen statt seiner ID zurückzugeben.
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;
Ergebnis (bei vertikaler Ausgabe):