sp_columns (Transact-SQL)
Gibt Spalteninformationen für die angegebenen, in der aktuellen Umgebung abfragbaren Tabellen oder Sichten zurück.
Syntax
sp_columns [ @table_name = ] object [ , [ @table_owner = ] owner ]
[ , [ @table_qualifier = ] qualifier ]
[ , [ @column_name = ] column ]
[ , [ @ODBCVer = ] ODBCVer ]
Argumente
[ @table_name=] object
Der Name der Tabelle oder Sicht, mit der Kataloginformationen zurückgegeben werden. object_name ist vom Datentyp nvarchar(384) und hat keinen Standardwert. Mustervergleiche mit Platzhalterzeichen werden unterstützt.[ @table_owner=] owner
Der Objektbesitzer der Tabelle oder Sicht, mit der Kataloginformationen zurückgegeben werden. owner ist vom Datentyp nvarchar(384) und hat den Standardwert NULL. Mustervergleiche mit Platzhalterzeichen werden unterstützt. Wenn owner nicht angegeben wird, werden die Standardregeln für die Sichtbarkeit von Tabellen bzw. Sichten des zugrunde liegenden DBMS angewendet.Wenn der aktuelle Benutzer eine Tabelle oder Sicht mit dem angegebenen Namen besitzt, werden die Spalten dieser Tabelle zurückgegeben. Wenn owner nicht angegeben wird und der aktuelle Benutzer keine Tabelle oder Sicht mit dem angegebenen object besitzt, sucht sp_columns nach einer Tabelle oder Sicht mit dem angegebenen Wert für object, die im Besitz des Datenbankbesitzers ist. Sofern eine solche Tabelle vorhanden ist, werden die Spalten dieser Tabelle zurückgegeben.
[ @table_qualifier=] qualifier
Der Name des Tabellen- oder Sichtqualifizierers. qualifier ist vom Datentyp sysname und hat den Standardwert NULL. Verschiedene DBMS-Produkte unterstützen eine dreiteilige Namensgebung für Tabellen (qualifier**.owner.**name). In SQL Server stellt diese Spalte den Datenbanknamen dar. Bei anderen Produkten stellt sie den Servernamen der Datenbankumgebung für die Tabelle dar.[ @column_name=] column
Eine einzelne Spalte, die verwendet wird, wenn nur eine Spalte mit Kataloginformationen gewünscht wird. column ist vom Datentyp nvarchar(384) und hat den Standardwert NULL. Wenn column nicht angegeben wird, werden alle Spalten zurückgegeben. In SQL Server stellt column den Spaltennamen gemäß der Angabe in der syscolumns-Tabelle dar. Mustervergleiche mit Platzhalterzeichen werden unterstützt. Für eine optimale Interoperabilität sollte der Gatewayclient nur einen SQL-92-Standardmustervergleich voraussetzen (die Platzhalterzeichen % und _).[ @ODBCVer=] ODBCVer
Die verwendete ODBC-Version. ODBCVer ist vom Datentyp int, der Standardwert ist 2. Dieser gibt ODBC, Version 2, an. Gültige Werte sind 2 oder 3. Informationen zu den Verhaltensunterschieden zwischen den Versionen 2 und 3 finden Sie in der SQLColumns-Spezifikation von ODBC.
Rückgabecodewerte
Keine
Resultsets
Die gespeicherte Prozedur für Kataloginformationen sp_columns entspricht SQLColumns in ODBC. Die zurückgegebenen Ergebnisse werden nach folgenden Spalten geordnet: TABLE_QUALIFIER, TABLE_OWNER und TABLE_NAME.
Spaltenname |
Datentyp |
Beschreibung |
---|---|---|
TABLE_QUALIFIER |
sysname |
Der Name des Qualifizierers für die Tabelle oder Sicht. Dieses Feld kann den Wert NULL annehmen. |
TABLE_OWNER |
sysname |
Der Name des Besitzers der Tabelle oder Sicht. Dieses Feld gibt immer einen Wert zurück. |
TABLE_NAME |
sysname |
Der Name der Tabelle oder Sicht. Dieses Feld gibt immer einen Wert zurück. |
COLUMN_NAME |
sysname |
Der Spaltenname für jede Spalte der mit TABLE_NAME zurückgegebenen Tabelle. Dieses Feld gibt immer einen Wert zurück. |
DATA_TYPE |
smallint |
Ein ganzzahliger Code für einen ODBC-Datentyp. Bei einem Datentyp, der keinem ODBC-Datentyp zugeordnet werden kann, wird der Wert NULL zurückgegeben. Der Name des systemeigenen Datentyps wird in der TYPE_NAME-Spalte zurückgegeben. |
TYPE_NAME |
sysname |
Die Zeichenfolge, die den Datentyp darstellt. Den Datentypnamen stellt das zugrunde liegende DBMS bereit. |
PRECISION |
int |
Die Anzahl der signifikanten Stellen. Der Rückgabewert für die PRECISION-Spalte hat die Basis 10. |
LENGTH |
int |
Die Übertragungsgröße der Daten.1 |
SCALE |
smallint |
Die Anzahl der Ziffern rechts vom Dezimalzeichen. |
RADIX |
smallint |
Die Basis für numerische Datentypen. |
NULLABLE |
smallint |
Gibt die NULL-Zulässigkeit an. 1 = NULL ist möglich 0 = NOT NULL |
REMARKS |
varchar(254) |
Dieses Feld gibt immer NULL zurück. |
COLUMN_DEF |
nvarchar(4000) |
Standardwert der Spalte. SQL Server 2008 und SQL Server 2005 unterscheiden 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. |
SQL_DATA_TYPE |
smallint |
Der Wert des SQL-Datentyps, wie er im TYPE-Feld des Deskriptors angezeigt wird. Diese Spalte entspricht der DATA_TYPE-Spalte mit Ausnahme des datetime-Datentyps und des SQL-92-Datentyps interval. Diese Spalte gibt immer einen Wert zurück. |
SQL_DATETIME_SUB |
smallint |
Untertypcode für den datetime-Datentyp und den SQL-92-Datentyp interval. Bei allen anderen Datentypen gibt diese Spalte NULL zurück. |
CHAR_OCTET_LENGTH |
int |
Die maximale Länge (in Byte) einer Spalte eines Zeichendatentyps oder eines ganzzahligen Datentyps. Bei allen anderen Datentypen gibt diese Spalte NULL zurück. |
ORDINAL_POSITION |
int |
Die Position einer Spalte innerhalb der Tabelle. Die erste Spalte der Tabelle ist Spalte 1. Diese Spalte gibt immer einen Wert zurück. |
IS_NULLABLE |
varchar(254) |
Die NULL-Zulässigkeit einer Spalte innerhalb der Tabelle. Die NULL-Zulässigkeit wird gemäß den ISO-Regeln bestimmt. Ein DBMS nach ISO SQL kann keine leere Zeichenfolge zurückgeben. YES = Spalte kann NULL-Werte enthalten. NO = Spalte kann keine NULL-Werte enthalten. Die Spalte gibt eine leere Zeichenfolge zurück, wenn die NULL-Zulässigkeit unbekannt ist. Der für diese Spalte zurückgegebene Wert unterscheidet sich von dem für die Spalte NULLABLE zurückgegebenen Wert. |
SS_DATA_TYPE |
tinyint |
Der SQL Server-Datentyp, der von erweiterten gespeicherten Prozeduren verwendet wird. Weitere Informationen finden Sie unter Datentypen (Transact-SQL). |
1 Weitere Informationen finden Sie in der Microsoft ODBC-Dokumentation.
Berechtigungen
Erfordert SELECT-Berechtigung für das Schema.
Hinweise
sp_columns erfüllt die Anforderungen für begrenzte Bezeichner. Weitere Informationen finden Sie unter Begrenzte Bezeichner (Datenbankmodul).
Beispiele
Im folgenden Beispiel werden die Spalteninformationen für die angegebene Tabelle zurückgegeben.
USE AdventureWorks
GO
EXEC sp_columns @table_name = N'Department',
@table_owner = N'HumanResources';