Freigeben über


COLUMNS (Transact-SQL)

Gibt eine Zeile für jede Spalte zurück, auf die vom aktuellen Benutzer in der aktuellen Datenbank zugegriffen werden kann.

Geben Sie zum Abrufen von Informationen aus diesen Sichten den vollqualifizierten Namen (INFORMATION_SCHEMA.view_name) an.

Spaltenname

Datentyp

Beschreibung

TABLE_CATALOG

nvarchar(128)

Tabellenqualifizierer

TABLE_SCHEMA

nvarchar(128)

Der Name des Schemas, das die Tabelle enthält.

Wichtiger HinweisWichtig
Verwenden Sie keine INFORMATION_SCHEMA-Sichten, um das Schema eines Objekts zu bestimmen. Die einzige zuverlässige Art, das Schema eines Objekts zu finden, ist das Abfragen der sys.objects-Katalogsicht oder die Verwendung der OBJECT_SCHEMA_NAME-Funktion.

TABLE_NAME

nvarchar(128)

Tabellenname.

COLUMN_NAME

nvarchar(128)

Spaltenname

ORDINAL_POSITION

int

Identifikationsnummer der Spalte.

COLUMN_DEFAULT

nvarchar(4000)

Standardwert der Spalte.

SQL Server 2008 unterscheidet sich von SQL Server 2000 darin, wie SQL-Ausdrücke in den Katalogmetadaten decodiert und gespeichert werden. Die Semantik des decodierten Ausdrucks entspricht dem ursprünglichen Text. Es gibt jedoch keine syntaktische Garantie. Leerzeichen werden beispielsweise aus dem decodierten Ausdruck entfernt. Weitere Informationen finden Sie unter Verhaltensänderungen von Datenbankmodul-Features in SQL Server 2008.

IS_NULLABLE

varchar(3)

NULL-Zulässigkeit der Spalte. Ist NULL in dieser Spalte zulässig, wird für diese Spalte YES zurückgegeben. Andernfalls wird NO zurückgegeben.

DATA_TYPE

nvarchar(128)

Vom System bereitgestellter Datentyp.

CHARACTER_MAXIMUM_LENGTH

int

Maximale Länge (in Zeichen) für binäre Daten, Zeichendaten, Text- und Image-Daten.

-1 für xml und umfangreiche Datentypen. Andernfalls wird NULL zurückgegeben. Weitere Informationen finden Sie unter Datentypen (Transact-SQL).

CHARACTER_OCTET_LENGTH

int

Maximale Länge (in Bytes) für binäre Daten, Zeichendaten, Text- und Image-Daten.

-1 für xml und für Daten des umfangreichen Datentyps. Andernfalls wird NULL zurückgegeben.

NUMERIC_PRECISION

tinyint

Genauigkeit für Spalten mit ungefähren numerischen Daten, exakten numerischen Daten, ganzzahligen Daten oder Währungsdaten. Andernfalls wird NULL zurückgegeben.

NUMERIC_PRECISION_RADIX

smallint

Basis der Genauigkeit für Spalten mit ungefähren numerischen Daten, exakten numerischen Daten, ganzzahligen Daten oder Währungsdaten. Andernfalls wird NULL zurückgegeben.

NUMERIC_SCALE

int

Anzahl der Dezimalstellen für Spalten mit ungefähren numerischen Daten, exakten numerischen Daten, ganzzahligen Daten oder Währungsdaten. Andernfalls wird NULL zurückgegeben.

DATETIME_PRECISION

smallint

Untertypcode für die Datentypen datetime und ISO interval. Für andere Datentypen wird NULL zurückgegeben.

CHARACTER_SET_CATALOG

nvarchar(128)

Gibt master zurück. Dies zeigt die Datenbank an, in der sich der Zeichensatz befindet, falls diese Spalte Zeichendaten oder Daten vom Typ text enthält. Andernfalls wird NULL zurückgegeben.

CHARACTER_SET_SCHEMA

nvarchar(128)

Es wird immer NULL zurückgegeben.

CHARACTER_SET_NAME

nvarchar(128)

Gibt den eindeutigen Namen für den Zeichensatz zurück, falls diese Spalte Zeichendaten oder Daten vom Typ text enthält. Andernfalls wird NULL zurückgegeben.

COLLATION_CATALOG

nvarchar(128)

Es wird immer NULL zurückgegeben.

COLLATION_SCHEMA

nvarchar(128)

Es wird immer NULL zurückgegeben.

COLLATION_NAME

nvarchar(128)

Gibt den eindeutigen Namen für die Sortierung zurück, falls die Spalte Zeichendaten oder Daten vom Typ text enthält. Andernfalls wird NULL zurückgegeben.

DOMAIN_CATALOG

nvarchar(128)

Falls die Spalte Daten eines Aliastyps enthält, wird in dieser Spalte der Name der Datenbank angezeigt, in der der benutzerdefinierte Datentyp erstellt wurde. Andernfalls wird NULL zurückgegeben.

DOMAIN_SCHEMA

nvarchar(128)

Falls die Spalte Daten eines benutzerdefinierten Typs enthält, gibt diese Spalte den Namen des Schemas des benutzerdefinierten Datentyps zurück. Andernfalls wird NULL zurückgegeben.

Wichtiger HinweisWichtig
Verwenden Sie keine INFORMATION_SCHEMA-Sichten, um das Schema eines Datentyps zu bestimmen. Die einzige zuverlässige Möglichkeit zum Finden des Schemas eines Typs besteht darin, die TYPEPROPERTY-Funktion zu verwenden.

DOMAIN_NAME

nvarchar(128)

Falls die Spalte Daten eines benutzerdefinierten Typs enthält, wird in dieser Spalte der Name des benutzerdefinierten Datentyps angezeigt. Andernfalls wird NULL zurückgegeben.

Hinweise

Die ORDINAL_POSITION-Spalte der INFORMATION_SCHEMA.COLUMNS-Sicht ist nicht kompatibel mit dem Bitmuster der Spalten, das von der COLUMNS_UPDATED-Funktion zurückgegeben wird. Um ein Bitmuster zu erhalten, das mit COLUMNS_UPDATED kompatibel ist, müssen Sie auf die ColumnID-Eigenschaft der COLUMNPROPERTY-Systemfunktion verweisen, wenn Sie eine Abfrage der INFORMATION_SCHEMA.COLUMNS-Sicht ausführen. z. B.:

USE AdventureWorks;
GO

SELECT COLUMN_NAME, COLUMNPROPERTY(OBJECT_ID(TABLE_SCHEMA + '.' + TABLE_NAME), COLUMN_NAME, 'ColumnID') AS COLUMN_ID
FROM AdventureWorks.INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Employee';

Beispiele

Im folgenden Beispiel werden die Spalten aller Tabellen und Sichten in der Datenbank zurückgegeben, die keinen NULL-Wert haben dürfen.

USE AdventureWorks;
GO

SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE IS_NULLABLE = 'NO'
ORDER BY DATA_TYPE;