sp_columns (Transact-SQL)
Gibt Spalteninformationen für die angegebenen, in der aktuellen Umgebung abfragbaren Objekte 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 des Objekts, mit dem Kataloginformationen zurückgegeben werden. object kann eine Tabelle, eine Sicht oder ein anderes Objekt mit Spalten sein (z. B. Tabellenwertfunktionen). object ist nvarchar(384) und hat keinen Standardwert. Mustervergleiche mit Platzhalterzeichen werden unterstützt.[ @table_owner=] owner
Der Objektbesitzer des Objekts, mit dem 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, gelten die Standardregeln für die Sichtbarkeit von Objekten des zugrunde liegenden DBMS.Besitzt der aktuelle Benutzer ein Objekt mit dem angegebenen Namen, werden die Spalten dieses Objekts zurückgegeben. Wenn owner nicht angegeben wird und der aktuelle Benutzer kein Objekt mit dem angegebenen Wert für object besitzt, sucht sp_columns nach einem Objekt mit dem angegebenen object, dessen Besitzer der Datenbankbesitzer ist. Sofern ein solches Objekt vorhanden ist, werden die Spalten dieses Objekts zurückgegeben.
[ @table_qualifier=] qualifier
Der Name des Objektqualifizierers. qualifier ist vom Datentyp sysname und hat den Standardwert NULL. Verschiedene DBMS-Produkte unterstützen eine dreiteilige Benennung für Objekte. (qualifier**.owner.**name). In SQL Server stellt diese Spalte den Datenbanknamen dar. Bei einigen Produkten stellt sie den Servernamen der Datenbankumgebung des Objekts 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
Ist 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 Objektqualifizierers. Dieses Feld kann den Wert NULL aufweisen. |
TABLE_OWNER |
sysname |
Der Name des Objektbesitzers. Dieses Feld gibt immer einen Wert zurück. |
TABLE_NAME |
sysname |
Der Objektname. Dieses Feld gibt immer einen Wert zurück. |
COLUMN_NAME |
sysname |
Der Spaltenname für jede Spalte der zurückgegebenen TABLE_NAME. 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-Funktionen in SQL Server 2008 R2. |
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 Ordnungsposition einer Spalte innerhalb des Objekts. Die erste Spalte im Objekt hat den Wert 1. Diese Spalte gibt immer einen Wert zurück. |
IS_NULLABLE |
varchar(254) |
Die NULL-Zulässigkeit einer Spalte innerhalb des Objekts. 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
Setzt die SELECT-Berechtigung für das Schema voraus.
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 AdventureWorks2008R2;
GO
EXEC sp_columns @table_name = N'Department',
@table_owner = N'HumanResources';