Delen via


sp_columns (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-eindpunt in Microsoft FabricMagazijn in Microsoft FabricSQL-database in Microsoft Fabric

Geeft kolominformatie terug voor de gespecificeerde objecten die in de huidige omgeving kunnen worden geraadpleegd.

Transact-SQL syntaxis-conventies

Syntaxis

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

Arguments

[ @table_name = ] N'table_name'

@table_name is nvarchar(384), zonder standaard.

De naam van het object dat wordt gebruikt om catalogusinformatie terug te geven. @table_name kan een tabel, weergave of ander object zijn dat kolommen bevat zoals tabelwaardige functies. @table_name is nvarchar(384), zonder standaard. Wildcard-patroonmatching wordt ondersteund.

[ @table_owner = ] N'table_owner'

De objecteigenaar van het object dat wordt gebruikt om catalogusinformatie terug te geven. @table_owner is nvarchar(384), met een standaard van NULL. Wildcard-patroonmatching wordt ondersteund. Als @table_owner niet is gespecificeerd, gelden de standaard objectzichtbaarheidsregels van de onderliggende DBMS.

Als de huidige gebruiker een object bezit met de opgegeven naam, worden de kolommen van dat object teruggegeven. Als @table_owner niet is gespecificeerd en de huidige gebruiker geen object bezit met de opgegeven @table_name, sp_columns zoek dan naar een object met de gespecificeerde @table_name eigendom van de database-eigenaar. Als er een bestaat, worden de kolommen van dat object teruggegeven.

[ @table_qualifier = ] N'table_qualifier'

@table_qualifier is sysname, met als standaard .NULL

De naam van de objectkwalificatie. @table_qualifier is sysname, met als standaard .NULL Verschillende DBMS-producten ondersteunen driedelige naamgeving voor objecten (<qualifier>.<owner>.<name>). In SQL Server vertegenwoordigt deze kolom de databasenaam. In sommige producten vertegenwoordigt het de servernaam van de databaseomgeving van het object.

[ @column_name = ] N'column_name'

Een enkele kolom en wordt gebruikt wanneer slechts één kolom catalogusinformatie nodig is. @column_name is nvarchar(384), met een standaard van NULL. Als @column_name niet is gespecificeerd, worden alle kolommen teruggegeven. In SQL Server vertegenwoordigt @column_name de kolomnaam zoals vermeld in de syscolumns tabel. Wildcard-patroonmatching wordt ondersteund. Voor maximale interoperabiliteit moet de gateway-client alleen SQL-92 standaard patroonmatching aannemen (de en % wildcard-tekens_).

[ @ODBCVer = ] ODBCVer

De versie van ODBC die wordt gebruikt. @ODBCVer is int, met een standaard van 2. Dit duidt op ODBC Versie 2. Geldige waarden zijn 2 of 3. Voor de gedragsverschillen tussen versies 2 en 3, zie de ODBC-specificatie SQLColumns .

Codewaarden retourneren

Geen.

Resultaatset

De sp_columns catalogusbewaarde procedure is gelijkwaardig aan die SQLColumns in ODBC. De teruggegeven resultaten zijn geordend door TABLE_QUALIFIER, TABLE_OWNER, en TABLE_NAME.

Kolomnaam Gegevenstype Description
TABLE_QUALIFIER sysname Naam van objectkwalificatie. Dit veld kan zijn NULL.
TABLE_OWNER sysname Naam van objecteigenaar. Dit veld geeft altijd een waarde terug.
TABLE_NAME sysname Objectnaam. Dit veld geeft altijd een waarde terug.
COLUMN_NAME sysname Kolomnaam, voor elke kolom van de teruggestuurde kolom TABLE_NAME . Dit veld geeft altijd een waarde terug.
DATA_TYPE smallint Integercode voor ODBC-datatype. Als dit datatype niet aan een ODBC-type kan worden gekoppeld, is NULLhet . De naam van het native datatype wordt in de TYPE_NAME kolom teruggegeven.
TYPE_NAME sysname String die een datatype vertegenwoordigt. Het onderliggende DBMS presenteert deze naam van het datatype.
PRECISION int Aantal significante cijfers. De retourwaarde voor de PRECISION kolom staat in basis 10.
LENGTH int Overdrachtsgrootte van de data. 1
SCALE smallint Aantal cijfers rechts van het decimale punt.
RADIX smallint Basis voor numerieke datatypes.
NULLABLE smallint Specificeert nullability.

1 = NULL is mogelijk.
0 = NIET NULL.
REMARKS Varchar(254) Dit veld geeft altijd .NULL
COLUMN_DEF nvarchar(4000) Standaardwaarde van de kolom.
SQL_DATA_TYPE smallint Waarde van het SQL-datatype zoals het verschijnt in het TYPE-veld van de descriptor. Deze kolom is hetzelfde als de DATA_TYPE kolom, behalve voor de datatypes datetime en SQL-92 intervalgegevens . Deze kolom geeft altijd een waarde terug.
SQL_DATETIME_SUB smallint Subtypecode voor datetime- en SQL-92-intervaldatatypes. Voor andere datatypen geeft deze kolom .NULL
CHAR_OCTET_LENGTH int Maximale lengte in bytes van een kolom voor een teken of geheel getal datatype. Voor alle andere datatypen geeft deze kolom .NULL
ORDINAL_POSITION int Ordinaalpositie van de kolom in het object. De eerste kolom in het object is 1. Deze kolom geeft altijd een waarde terug.
IS_NULLABLE Varchar(254) Nulbaarheid van de kolom in het object. ISO-regels worden gevolgd om de nulliteit te bepalen. Een ISO-SQL-conforme DBMS kan geen lege string teruggeven.

YES= De kolom kan .NULL
NO = Kolom kan niet bevatten NULL.

Deze kolom geeft een string van nul lengte terug als de nullability onbekend is.

De waarde die voor deze kolom wordt geretourneerd verschilt van de waarde die voor de NULLABLE kolom wordt geretourneerd.
SS_DATA_TYPE tinyint SQL Server-datatype dat wordt gebruikt door uitgebreide opgeslagen procedures. Zie Gegevenstypen voor meer informatie.

1 Voor meer informatie, zie ODBC Overzicht.

Permissions

Vereisten SELECT en VIEW DEFINITION rechten op het schema.

Opmerkingen

sp_columns volgt de vereisten voor afgebakende identificaties. Zie Database-id's voor meer informatie.

Voorbeelden

De codevoorbeelden in dit artikel gebruiken de AdventureWorks2025 of AdventureWorksDW2025 voorbeelddatabase die u kunt downloaden van de startpagina van Microsoft SQL Server Samples en Community Projects .

Het volgende voorbeeld geeft kolominformatie voor een opgegeven tabel terug.

USE AdventureWorks2022;
GO

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

Voorbeelden: Azure Synapse Analytics and Analytics Platform System (PDW)

Het volgende voorbeeld geeft kolominformatie voor een opgegeven tabel terug.

USE AdventureWorksDW2022;
GO

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