COLUMNPROPERTY (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance
Diese Funktion gibt Informationen zu Spalten oder Parametern zurück.
Transact-SQL-Syntaxkonventionen
Syntax
COLUMNPROPERTY ( id , column , property )
Argumente
id
Ein Ausdruck, der den Bezeichner (ID) der Tabelle oder Prozedur enthält.
column
Ein Ausdruck, der den Namen der Spalte oder des Parameters enthält.
property
Das property-Argument gibt für das id-Argument den Informationstyp an, den die COLUMNPROPERTY
-Funktion zurückgibt. Für das property-Argument sind die folgenden Werte möglich:
Wert | BESCHREIBUNG | Zurückgegebener Wert |
---|---|---|
AllowsNull | Lässt NULL-Werte zu. | 1: TRUE 0: FALSE NULL = Ungültige Eingabe |
ColumnId | Der Wert der Spalten-ID, der sys.columns.column_id entspricht. | Column ID Hinweis: Wenn mehrere Spalten abgefragt werden, können Lücken in der Abfolge von Werten für Spalten-IDs auftreten. |
FullTextTypeColumn | Der TYPE COLUMN-Wert in der Tabelle, die die Dokumenttypinformationen der Spalte enthält. | Die ID der Volltexttypspalte TYPE COLUMN für den Ausdruck des Spaltennamens, der als zweiter Parameter dieser Funktion übergeben wurde. |
GeneratedAlwaysType | Wird durch den Spaltenwert systemgeneriert. Entspricht sys.columns.generated_always_type | Gilt für: SQL Server 2016 (13.x) und höher. 0 = Nicht immer generiert 1 = Immer am Zeilenanfang generiert 2 = Immer am Zeilenende generiert |
IsColumnSet | Spalte ist ein Spaltensatz. Weitere Informationen finden Sie unter Verwenden von Spaltensätzen. | 1: TRUE 0: FALSE NULL = Ungültige Eingabe |
IsComputed | Die Spalte ist eine berechnete Spalte. | 1: TRUE 0: FALSE NULL = Ungültige Eingabe |
IsCursorType | Der Prozedurparameter ist vom Typ CURSOR. | 1: TRUE 0: FALSE NULL = Ungültige Eingabe |
IsDeterministic | Die Spalte ist deterministisch. Diese Eigenschaft gilt nur für berechnete Spalten und Sichtspalten. | 1: TRUE 0: FALSE NULL = Ungültige Eingabe Keine berechnete Spalte oder Sichtspalte. |
IsFulltextIndexed | Die Spalte wird für die Volltextindizierung registriert. | 1: TRUE 0: FALSE NULL = Ungültige Eingabe |
IsHidden | Wird durch den Spaltenwert systemgeneriert. Entspricht sys.columns.is_hidden | Gilt für: SQL Server 2016 (13.x) und höher. 0 = Nicht ausgeblendet 1 = Ausgeblendet |
IsIdentity | Die Spalte verwendet die IDENTITY-Eigenschaft. | 1: TRUE 0: FALSE NULL = Ungültige Eingabe |
IsIdNotForRepl | In der Spalte wird die IDENTITY_INSERT-Einstellung überprüft. | 1: TRUE 0: FALSE NULL = Ungültige Eingabe |
IsIndexable | Diese Spalte kann indiziert werden. | 1: TRUE 0: FALSE NULL = Ungültige Eingabe |
isoutparam | Der Prozedurparameter ist ein Ausgabeparameter. | 1: TRUE 0: FALSE NULL = Ungültige Eingabe |
IsPrecise | Diese Spalte ist eine genaue Spalte. Diese Eigenschaft wird nur auf deterministische Spalten angewendet. | 1: TRUE 0: FALSE NULL = Ungültige Eingabe Keine deterministische Spalte |
IsRowGuidCol | Die Spalte weist den Datentyp uniqueidentifier auf und wird über die ROWGUIDCOL-Eigenschaft definiert. | 1: TRUE 0: FALSE NULL = Ungültige Eingabe |
IsSparse | Spalte ist eine Sparsespalte. Weitere Informationen finden Sie unter Verwenden von Spalten mit geringer Dichte. | 1: TRUE 0: FALSE NULL = Ungültige Eingabe |
IsSystemVerified | Die Eigenschaften für Determinismus und Genauigkeit der Spalte können von Datenbank-Engine überprüft werden. Diese Eigenschaft gilt nur für berechnete Spalten und Spalten von Sichten. | 1: TRUE 0: FALSE NULL = Ungültige Eingabe |
IsXmlIndexable | Die XML-Spalte kann in einem XML-Index verwendet werden. | 1: TRUE 0: FALSE NULL = Ungültige Eingabe |
Genauigkeit | Länge des Datentyps der Spalte oder des Parameters. | Die Länge des angegebenen Spaltendatentyps. -1 = xml oder Typen für hohe Werte NULL = Ungültige Eingabe |
Skalierung | Dezimalstellen des Datentyps der Spalte oder des Parameters. | Wert der Dezimalstellen NULL = Ungültige Eingabe |
StatisticalSemantics | Spalte ist für die semantische Indizierung aktiviert. | 1: TRUE 0: FALSE |
SystemDataAccess | Die Spalte wird von einer Funktion abgeleitet, die auf Daten in den Systemkatalogen oder virtuellen Tabellen von SQL Server zugreift. Diese Eigenschaft gilt nur für berechnete Spalten und Spalten von Sichten. | 1 = TRUE (gibt schreibgeschützten Zugriff an) 0: FALSE NULL = Ungültige Eingabe |
UserDataAccess | Die Spalte wird von einer Funktion abgeleitet, die auf Daten in Benutzertabellen zugreift, einschließlich Sichten und temporäre Tabellen, die in der lokalen Instanz von SQL Server gespeichert sind. Diese Eigenschaft gilt nur für berechnete Spalten und Spalten von Sichten. | 1 = TRUE (gibt schreibgeschützten Zugriff an) 0: FALSE NULL = Ungültige Eingabe |
UsesAnsiTrim | ANSI_PADDING wurde zum Zeitpunkt der Erstellung der Tabelle auf ON festgelegt. Diese Eigenschaft gilt nur für Spalten oder Parameter vom Typ char oder varchar. | 1: TRUE 0: FALSE NULL = Ungültige Eingabe |
Rückgabetypen
int
Ausnahmen
Gibt NULL bei einem Fehler zurück oder wenn ein Aufrufer nicht über Berechtigungen zum Anzeigen des Objekts verfügt.
Ein Benutzer kann nur die Metadaten sicherungsfähiger Elemente anzeigen, bei denen der Benutzer entweder der Besitzer ist oder für die dem Benutzer eine Berechtigung erteilt wurde. Dies bedeutet, dass Metadaten ausgebende integrierte Funktionen, z.B. COLUMNPROPERTY
, möglicherweise NULL zurückgeben, wenn dem Benutzer für das Objekt nicht die korrekte Berechtigung erteilt wurde. Weitere Informationen finden Sie unter Konfigurieren der Sichtbarkeit von Metadaten.
Bemerkungen
Beim Überprüfen der deterministischen Eigenschaft einer Spalte prüfen Sie zuerst, ob die Spalte eine berechnete Spalte ist. Das Argument IsDeterministic gibt für nicht berechnete Spalten NULL zurück. Berechnete Spalten können als Indexspalten angegeben werden.
Beispiele
Dieses Beispiel gibt die Länge der Spalte LastName
zurück.
USE AdventureWorks2022;
GO
SELECT COLUMNPROPERTY( OBJECT_ID('Person.Person'),'LastName','PRECISION')AS 'Column Length';
GO
Hier sehen Sie das Ergebnis.
Column Length
-------------
50
Siehe auch
Metadatenfunktionen (Transact-SQL)
TYPEPROPERTY (Transact-SQL)