Freigeben über


COLUMNPROPERTY (Transact-SQL)

Gibt Informationen über einen Spalten- oder Prozedurparameter zurück.

Themenlink (Symbol)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
    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

    HinweisHinweis
    Wenn 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)