COLUMNPROPERTY (Transact-SQL)
Gibt Informationen über eine Spalte oder einen Parameter zurück.
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
Ein Ausdruck, der die Informationen enthält, die für id zurückgegeben werden. Die folgenden Werte sind möglich:Wert
Beschreibung
Rückgabewert
AllowsNull
NULL-Werte sind zulässig
1 = TRUE
0 = FALSE
NULL = Eingabe ist ungültig.
ColumnId
Der Wert der Spalten-ID, der sys.columns.column_id entspricht.
Column ID
HinweisWenn mehrere Spalten abgefragt werden, können Lücken in der Abfolge von Werten für Spalten-IDs auftreten.FullTextTypeColumn
TYPE COLUMN in der Tabelle, die die Dokumenttypinformationen für column enthält.
Die ID der Volltexttypspalte TYPE COLUMN für die Spalte, die als zweiter Parameter dieser Eigenschaft übergeben wurde.
IsComputed
Die Spalte ist eine berechnete Spalte.
1 = TRUE
0 = FALSE
NULL = Eingabe ist ungültig.
IsCursorType
Der Prozedurparameter ist vom Typ CURSOR.
1 = TRUE
0 = FALSE
NULL = Eingabe ist ungültig.
IsDeterministic
Die Spalte ist deterministisch. Diese Eigenschaft gilt nur für berechnete Spalten und Sichtspalten.
1 = TRUE
0 = FALSE
NULL = Eingabe ist ungültig. Keine berechnete Spalte oder Sichtspalte.
IsFulltextIndexed
Die Spalte wurde für die Volltextindizierung registriert.
1 = TRUE
0 = FALSE
NULL = Eingabe ist ungültig.
IsIdentity
Die Spalte verwendet die IDENTITY-Eigenschaft.
1 = TRUE
0 = FALSE
NULL = Eingabe ist ungültig.
IsIdNotForRepl
In der Spalte wird die IDENTITY_INSERT-Einstellung überprüft.
1 = TRUE
0 = FALSE
NULL = Eingabe ist ungültig.
IsIndexable
Diese Spalte kann indiziert werden.
1 = TRUE
0 = FALSE
NULL = Eingabe ist ungültig.
IsOutParam
Der Prozedurparameter ist ein Ausgabeparameter.
1 = TRUE
0 = False NULL = Eingabe ist ungültig.
IsPrecise
Diese Spalte ist eine genaue Spalte. Diese Eigenschaft wird nur auf deterministische Spalten angewendet.
1 = TRUE
0 = False NULL = Eingabe ist ungültig. Keine deterministische Spalte
IsRowGuidCol
Die Spalte hat den Datentyp uniqueidentifier und wird über die ROWGUIDCOL-Eigenschaft definiert.
1 = TRUE
0 = FALSE
NULL = Eingabe ist ungültig.
IsSystemVerified
Die Determinismus- und Genauigkeitseigenschaften der Spalte können von Database Engine (Datenbankmodul) überprüft werden. Diese Eigenschaft gilt nur für berechnete Spalten und Spalten von Sichten.
1 = TRUE
0 = FALSE
NULL = Eingabe ist ungültig.
IsXmlIndexable
Die XML-Spalte kann in einem XML-Index verwendet werden.
1 = TRUE
0 = FALSE
NULL = Eingabe ist ungültig.
Precision
Die Länge des Datentyps der Spalte oder des Parameters.
Die Länge des angegebenen Spaltendatentyps.
-1 = xml oder Typen für große Werte
NULL = Eingabe ist ungültig.
Scale
Dezimalstellen des Datentyps der Spalte oder des Parameters.
Die Dezimalstellen
NULL = Eingabe ist ungültig.
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 = Eingabe ist ungültig.
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 = Eingabe ist ungültig.
UsesAnsiTrim
Bei der Erstellung der Tabelle wurde für ANSI_PADDING die Einstellung ON festgelegt. Diese Eigenschaft gilt nur für Spalten oder Parameter vom Typ char oder varchar.
1 = True
0 = False
NULL = Eingabe ist ungültig.
IsSparse
Spalte ist eine Spalte mit geringer Dichte. Weitere Informationen finden Sie unter Verwenden von Spalten mit geringer Dichte.
1 = TRUE
0 = FALSE
NULL = Eingabe ist ungültig.
IsColumnSet
Spalte ist ein Spaltensatz. Weitere Informationen finden Sie unter Verwenden von Spaltensätzen.
1 = TRUE
0 = FALSE
NULL = Eingabe ist ungültig.
Rückgabetypen
int
Ausnahmen
Gibt NULL bei einem Fehler zurück oder wenn ein Aufrufer nicht über Berechtigungen zum Anzeigen des Objekts verfügt.
In SQL Server 2008 kann ein Benutzer 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 keine Berechtigung erteilt wurde. Weitere Informationen finden Sie unter Konfigurieren der Sichtbarkeit von Metadaten und Behandlung von Problemen bei der Sichtbarkeit von Metadaten.
Hinweise
Beim Prüfen einer deterministischen Eigenschaft einer Spalte prüfen Sie zuerst, ob die Spalte eine berechnete Spalte ist. IsDeterministic gibt für nicht berechnete Spalten NULL zurück. Berechnete Spalten können als Indexspalten angegeben werden.
Beispiele
Das folgende Beispiel gibt die Länge der Spalte LastName zurück.
USE AdventureWorks2008R2;
GO
SELECT COLUMNPROPERTY( OBJECT_ID('Person.Person'),'LastName','PRECISION')AS 'Column Length';
GO
Dies ist das Resultset.
Column Length
-------------
50
(1 row(s) affected)