Teilen über


sp_columns (Transact-SQL)

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL Analytics-Endpunkt in Microsoft Fabric Warehouse in Microsoft Fabric

Gibt Spalteninformationen für die angegebenen, in der aktuellen Umgebung abfragbaren Objekte zurück.

Transact-SQL-Syntaxkonventionen

Syntax

sp_columns
    [ @table_name = ] N'table_name'
    [ , [ @table_owner = ] N'table_owner' ]
    [ , [ @table_qualifier = ] N'table_qualifier' ]
    [ , [ @column_name = ] N'column_name' ]
    [ , [ @ODBCVer = ] ODBCVer ]
[ ; ]

Argumente

[ @table_name = ] N'table_name'

@table_name ist nvarchar(384), ohne Standard.

Der Name des Objekts, das verwendet wird, um Kataloginformationen zurückzugeben. @table_name kann es sich um eine Tabelle, Ansicht oder ein anderes Objekt handeln, das Spalten wie Tabellenwertfunktionen darstellt. @table_name ist nvarchar(384), ohne Standard. Mustervergleiche mit Platzhalterzeichen werden unterstützt.

[ @table_owner = ] N'table_owner'

Der Objektbesitzer des Objekts, das verwendet wird, um Kataloginformationen zurückzugeben. @table_owner ist "nvarchar(384)" mit einem Standardwert von NULL. Mustervergleiche mit Platzhalterzeichen werden unterstützt. Wenn @table_owner nicht angegeben ist, gelten die Standardregeln für die Objektsichtbarkeit der zugrunde liegenden DBMS.

Wenn der aktuelle Benutzer ein Objekt mit dem angegebenen Namen besitzt, werden die Spalten dieses Objekts zurückgegeben. Wenn @table_owner nicht angegeben ist und der aktuelle Benutzer kein Objekt mit dem angegebenen @table_name besitzt, sp_columns sucht nach einem Objekt mit dem angegebenen @table_name im Besitz des Datenbankbesitzers. Sofern ein solches Objekt vorhanden ist, werden dessen Spalten zurückgegeben.

[ @table_qualifier = ] N'table_qualifier'

@table_qualifier ist "sysname" mit einem Standardwert von NULL.

Der Name des Objektqualifizierers. @table_qualifier ist "sysname" mit einem Standardwert von NULL. Verschiedene DBMS-Produkte unterstützen die dreiteilige Benennung für Objekte (<qualifier>.<owner>.<name>). In SQL Server stellt diese Spalte den Datenbanknamen dar. Bei einigen anderen Produkten stellt sie den Servernamen der Datenbankumgebung für das Objekt dar.

[ @column_name = ] N'column_name'

Eine einzelne Spalte und wird verwendet, wenn nur eine Spalte mit Kataloginformationen gewünscht wird. @column_name ist nvarchar(384), mit einem Standardwert von NULL. Wenn @column_name nicht angegeben ist, werden alle Spalten zurückgegeben. In SQL Server stellt @column_name den Spaltennamen dar, wie in der syscolumns Tabelle aufgeführt. Mustervergleiche mit Platzhalterzeichen werden unterstützt. Für die maximale Interoperabilität sollte der Gatewayclient nur den SQL-92-Standardmusterabgleich (die und _ die % Wildcardzeichen) übernehmen.

[ @ODBCVer = ] ODBCVer

Die version von ODBC, die verwendet wird. @ODBCVer ist int mit einem Standardwert von 2. Dieser gibt ODBC, Version 2, an. Gültige Werte sind 2 und 3. Die Verhaltensunterschiede zwischen den Versionen 2 und 3 finden Sie in der ODBC-Spezifikation SQLColumns .

Rückgabecodewerte

Keine.

Resultset

Die sp_columns gespeicherte Katalogprozedur entspricht SQLColumns in ODBC. Die zurückgegebenen Ergebnisse werden nach TABLE_QUALIFIER, TABLE_OWNERund TABLE_NAME.

Spaltenname Datentyp Beschreibung
TABLE_QUALIFIER sysname Objektqualifizierername. Dieses Feld kann sein NULL.
TABLE_OWNER sysname Objektbesitzername. Dieses Feld gibt immer einen Wert zurück.
TABLE_NAME sysname Objektname Dieses Feld gibt immer einen Wert zurück.
COLUMN_NAME sysname Spaltenname für jede Spalte der TABLE_NAME zurückgegebenen. Dieses Feld gibt immer einen Wert zurück.
DATA_TYPE smallint Ganzzahliger Code für den ODBC-Datentyp. Wenn dieser Datentyp keinem ODBC-Typ zugeordnet werden kann, lautet NULLer . Der name des nativen 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 von signifikanten Stellen. Der Rückgabewert für die PRECISION Spalte befindet sich in Der 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 = NICHT NULL.
REMARKS varchar(254) Dieses Feld gibt immer zurück NULL.
COLUMN_DEF nvarchar(4000) Standardwert der Spalte
SQL_DATA_TYPE smallint Der Wert des SQL-Datentyps, wie er im TYPE-Feld des Deskriptors angezeigt wird. Diese Spalte ist identisch mit der DATA_TYPE Spalte, mit Ausnahme der Datentypen "datetime " und "SQL-92 " . Diese Spalte gibt immer einen Wert zurück.
SQL_DATETIME_SUB smallint Untertypcode für die Datentypen datetime und interval (SQL 92). Bei anderen Datentypen gibt diese Spalte zurück NULL.
CHAR_OCTET_LENGTH int Die maximale Länge (in Byte) einer Spalte eines Zeichendatentyps oder eines ganzzahligen Datentyps. Für alle anderen Datentypen gibt diese Spalte zurück NULL.
ORDINAL_POSITION int Die Position 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 ISO SQL-kompatibles DBMS kann keine leere Zeichenfolge zurückgeben.

YES = Spalte kann enthalten NULLsein.
NO = Spalte kann nicht eingeschlossen werden NULL.

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 vom für die NULLABLE Spalte zurückgegebenen Wert.
SS_DATA_TYPE tinyint Der SQL Server-Datentyp, der von erweiterten gespeicherten Prozeduren verwendet wird. Weitere Informationen finden Sie unter Datentypen.

1 Weitere Informationen finden Sie in der ODBC-Übersicht.

Berechtigungen

Erfordert SELECT und VIEW DEFINITION Berechtigungen für das Schema.

Hinweise

sp_columns folgt den Anforderungen für durch Trennzeichen getrennte Bezeichner. Weitere Informationen finden Sie unter Datenbankbezeichner.

Beispiele

Die Transact-SQL-Codebeispiele in diesem Artikel verwenden die AdventureWorks2022- oder AdventureWorksDW2022-Beispieldatenbank, die Sie von der Homepage Microsoft SQL Server Samples and Community Projects herunterladen können.

Im folgenden Beispiel werden die Spalteninformationen für die angegebene Tabelle zurückgegeben.

USE AdventureWorks2022;
GO

EXEC sp_columns
    @table_name = N'Department',
    @table_owner = N'HumanResources';

Beispiele: Azure Synapse Analytics und Analytics-Plattformsystem (PDW)

Im folgenden Beispiel werden die Spalteninformationen für die angegebene Tabelle zurückgegeben.

USE AdventureWorksDW2022;
GO

EXEC sp_columns
    @table_name = N'DimEmployee',
    @table_owner = N'dbo';