COLUMNPROPERTY (Transact-SQL)
Gibt Informationen über einen Spalten- oder Prozedurparameter 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 nicht gü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 nicht gültig
IsCursorType
Der Prozedurparameter ist vom Typ CURSOR.
1 = TRUE
0 = FALSE
NULL = Eingabe ist nicht gültig
IsDeterministic
Die Spalte ist deterministisch. Diese Eigenschaft gilt nur für berechnete Spalten und Sichtspalten.
1 = TRUE
0 = False
NULL = Eingabe ist nicht gültig Keine berechnete Spalte oder Sichtspalte.
IsFulltextIndexed
Die Spalte wurde für die Volltextindizierung registriert.
1 = TRUE
0 = FALSE
NULL = Eingabe ist nicht gültig
IsIdentity
Die Spalte verwendet die IDENTITY-Eigenschaft.
1 = TRUE
0 = False NULL = Eingabe ist nicht gültig
IsIdNotForRepl
In der Spalte wird die IDENTITY_INSERT-Einstellung überprüft. Wird IDENTITY NOT FOR REPLICATION angegeben, findet keine Überprüfung der IDENTITY_INSERT-Einstellung statt.
1 = TRUE
0 = False
NULL = Eingabe ist nicht gültig
IsIndexable
Diese Spalte kann indiziert werden.
1 = TRUE
0 = FALSE
NULL = Eingabe ist nicht gültig
IsOutParam
Der Prozedurparameter ist ein Ausgabeparameter.
1 = TRUE
0 = False NULL = Eingabe ist nicht gültig
IsPrecise
Diese Spalte ist eine genaue Spalte. Diese Eigenschaft wird nur auf deterministische Spalten angewendet.
1 = TRUE
0 = False NULL = Eingabe ist nicht gü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 nicht gü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 nicht gültig.
IsXmlIndexable
Die XML-Spalte kann in einem XML-Index verwendet werden.
1 = TRUE
0 = FALSE
NULL = Eingabe ist nicht gü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 nicht gültig
Scale
Dezimalstellen des Datentyps der Spalte oder des Parameters.
Die Dezimalstellen
NULL = Eingabe ist nicht gü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 nicht gü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 nicht gü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 nicht gü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 nicht gültig.
IsColumnSet
Spalte ist ein Spaltensatz. Weitere Informationen finden Sie unter Verwenden von Spaltensätzen.
1 = TRUE
0 = FALSE
NULL = Eingabe ist nicht gü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 AdventureWorks;
GO
SELECT COLUMNPROPERTY( OBJECT_ID('Person.Contact'),'LastName','PRECISION')AS 'Column Length';
GO
Dies ist das Resultset.
Column Length
-------------
50
(1 row(s) affected)