sp_columns (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalysplattformssystem (PDW)SQL-analysslutpunkt i Microsoft FabricLager i Microsoft FabricSQL-databas i Microsoft Fabric

Returnerar kolumninformation för de specificerade objekt som kan frågas i den aktuella miljön.

Transact-SQL syntaxkonventioner

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 ]
[ ; ]

Arguments

[ @table_name = ] N'table_name'

@table_name är nvarchar(384), utan standard.

Namnet på objektet som används för att returnera kataloginformation. @table_name kan vara en tabell, vy eller annat objekt som består av kolumner som tabellvärda funktioner. @table_name är nvarchar(384), utan standard. Wildcard-mönstermatchning stöds.

[ @table_owner = ] N'table_owner'

Objektägaren till objektet som används för att returnera kataloginformation. @table_owner är nvarchar(384), med en standard på NULL. Wildcard-mönstermatchning stöds. Om @table_owner inte specificeras gäller standardreglerna för objektsynlighet i det underliggande DBMS.

Om den nuvarande användaren äger ett objekt med det angivna namnet returneras kolumnerna i det objektet. Om @table_owner inte är specificerat och den nuvarande användaren inte äger ett objekt med den angivna @table_name, sp_columns leta efter ett objekt med den angivna @table_name som ägs av databasägaren. Om en sådan existerar, returneras objektets kolumner.

[ @table_qualifier = ] N'table_qualifier'

@table_qualifier är sysname, med standardvärdet .NULL

Namnet på objektkvalificeraren. @table_qualifier är sysname, med standardvärdet .NULL Olika DBMS-produkter stödjer tredelad namngivning för objekt (<qualifier>.<owner>.<name>). I SQL Server representerar denna kolumn databasens namn. I vissa produkter representerar den servernamnet på objektets databasmiljö.

[ @column_name = ] N'column_name'

En enda kolumn och används när endast en kolumn med kataloginformation önskas. @column_name är nvarchar(384), med en standard på NULL. Om @column_name inte anges returneras alla kolumner. I SQL Server representerar @column_name kolumnnamnet som anges i tabellen syscolumns . Wildcard-mönstermatchning stöds. För maximal interoperabilitet bör gateway-klienten endast anta SQL-92-standardmönstermatchning (jokertecken % och _ jokertecken).

[ @ODBCVer = ] ODBCVer

Den version av ODBC som används. @ODBCVer är int, med standardvärdet .2 Detta indikerar ODBC version 2. Giltiga värden är 2 eller 3. För beteendeskillnaderna mellan version 2 och 3, se ODBC-specifikationen SQLColumns .

Returnera kodvärden

Ingen.

Resultatuppsättning

Kataloglagret sp_columns procedur motsvarar SQLColumns den i ODBC. De returnerade resultaten är ordnade efter TABLE_QUALIFIER, TABLE_OWNER, och TABLE_NAME.

Kolumnnamn Datatyp Description
TABLE_QUALIFIER sysname Namn på objektkvalificeraren. Detta fält kan vara NULL.
TABLE_OWNER sysname Objekt ägarens namn. Detta fält returnerar alltid ett värde.
TABLE_NAME sysname Objektnamn. Detta fält returnerar alltid ett värde.
COLUMN_NAME sysname Kolumnnamn, för varje kolumn i den TABLE_NAME returnerade. Detta fält returnerar alltid ett värde.
DATA_TYPE smallint Heltalskod för ODBC-datatyp. Om denna datatyp inte kan mappas till en ODBC-typ är det NULL. Det ursprungliga datatypnamnet returneras i kolumnen TYPE_NAME .
TYPE_NAME sysname Sträng som representerar en datatyp. Det underliggande DBMS presenterar detta datatypnamn.
PRECISION int Antal signifikanta siffror. Returvärdet för kolumnen PRECISION är i bas 10.
LENGTH int Överför datastorleken. 1
SCALE smallint Antal siffror till höger om decimalpunkten.
RADIX smallint Basen för numeriska datatyper.
NULLABLE smallint Specificerar nullbarhet.

1 = NULL är möjligt.
0 = INTE NULL.
REMARKS Varchar(254) Detta fält returnerar NULLalltid .
COLUMN_DEF nvarchar(4000) Standardvärdet för kolumnen.
SQL_DATA_TYPE smallint Värdet på SQL-datatypen som den visas i fältet TYPE i deskriptorn. Denna kolumn är densamma som kolumnenDATA_TYPE, förutom datatyperna datetime och SQL-92-intervalldatatyperna. Denna kolumn returnerar alltid ett värde.
SQL_DATETIME_SUB smallint Subtypkod för datetime- och SQL-92-intervalldatatyper. För andra datatyper returnerar NULLdenna kolumn .
CHAR_OCTET_LENGTH int Maximal längd i byte av en kolumn för tecken eller heltalsdatatyp. För alla andra datatyper returnerar NULLdenna kolumn .
ORDINAL_POSITION int Kolumnens ordinala position i objektet. Den första kolumnen i objektet är 1. Denna kolumn returnerar alltid ett värde.
IS_NULLABLE Varchar(254) Nullbarhet för kolumnen i objektet. ISO-regler följs för att avgöra nullbarhet. Ett ISO SQL-kompatibelt DBMS kan inte returnera en tom sträng.

YES = Kolumnen kan inkludera NULL.
NO = Kolumnen kan inte inkludera NULL.

Denna kolumn returnerar en sträng av nolllängd om nullbarhet är okänd.

Värdet som returneras för denna kolumn skiljer sig från värdet som returneras för kolumnen NULLABLE .
SS_DATA_TYPE tinyint SQL Server-datatyp som används av utökade lagrade procedurer. Mer information finns i Datatyper.

1 För mer information, se ODBC Översikt.

Permissions

Krav SELECT och VIEW DEFINITION behörigheter på schemat.

Anmärkningar

sp_columns följer kraven för avgränsade identifierare. Mer information finns i Databasidentifierare.

Examples

Kodexemplen i den här artikeln använder AdventureWorks2025- eller AdventureWorksDW2025-exempeldatabasen, som du kan ladda ned från startsidan Microsoft SQL Server Samples och Community Projects.

Följande exempel returnerar kolumninformation för en specificerad tabell.

USE AdventureWorks2022;
GO

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

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

Följande exempel returnerar kolumninformation för en specificerad tabell.

USE AdventureWorksDW2022;
GO

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