Megosztás a következőn keresztül:


sp_columns (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példányAzure Synapse AnalyticsElemzési platformrendszer (PDW)SQL Analytics-végpont a Microsoft FabricbenRaktár a Microsoft FabricbenSQL-adatbázis a Microsoft Fabricben

A megadott objektumok oszlopinformációit adja vissza, amelyeket a jelenlegi környezetben lehet lekérdezni.

Transact-SQL szintaxis konvenciók

Szemantika

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_namenvarchar(384), alapértelmezett nélkül.

Az objektum neve, amelyet a katalógusinformáció visszaküldésére használnak. @table_name lehet tábla, nézet vagy más oszlopokból álló objektum, például táblázatértékű függvények. @table_namenvarchar(384), alapértelmezett nélkül. A vadkártya mintázatpárosítás támogatott.

[ @table_owner = ] N'table_owner'

Az objektum tulajdonosa, amelyet a katalógusinformáció visszaadására használnak. @table_ownernvarchar(384), alapértelmezett értéke NULL. A vadkártya mintázatpárosítás támogatott. Ha @table_owner nincs megadva, akkor az alap objektum láthatósági szabályai érvényesek az alap DBMS-ben.

Ha a jelenlegi felhasználó birtokol egy meghatározott nevű objektumot, az objektum oszlopai visszakerülnek. Ha @table_owner nincs megadva, és a jelenlegi felhasználó nem birtokolja a megadott @table_name objektumot, sp_columns keressen egy objektumot a megadott @table_name az adatbázis tulajdonosa tulajdonában. Ha létezik ilyen, az adott objektum oszlopai visszatérnek.

[ @table_qualifier = ] N'table_qualifier'

@table_qualifiera sysname, alapértelmezésként NULL.

Az objektum kvalifikátorának neve. @table_qualifiera sysname, alapértelmezésként NULL. Különböző adatbázis-alapú termékek háromrészes elnevezést támogatnak objektumoknak (<qualifier>.<owner>.<name>). Az SQL Server esetében ez az oszlop az adatbázis nevét jelöli. Egyes termékekben az objektum adatbázis környezetének szervernevét képviseli.

[ @column_name = ] N'column_name'

Egyetlen oszlop, és akkor használják, ha csak egy oszlop a katalógusinformációra van szükség. @column_namenvarchar(384), alapértelmezett NULLérték . Ha @column_name nincs megadva, minden oszlopot visszaküldenek. Az SQL Serverben @column_name a táblázatban felsorolt oszlopnevet syscolumns képviseli. A vadkártya mintázatpárosítás támogatott. A maximális interoperabilitás érdekében a gateway kliensnek csak SQL-92 szabványos mintázatpárosítást kell feltételeznie (a % és _ a vadkártya karaktereket).

[ @ODBCVer = ] ODBCVer

Az ODBC verzió, amit használnak. @ODBCVerint, alapértelmezés 2. Ez az ODBC 2-es verzióját jelzi. Az érvényes értékek 2 vagy 3. A 2. és 3. verzió közötti viselkedésbeli különbségekről lásd az ODBC SQLColumns specifikációt.

Kódértékek visszaadása

Nincs.

Eredményhalmaz

A sp_columns katalógusban tárolt eljárás egyenértékű az ODBC-vel SQLColumns . A visszaadott eredményeket , TABLE_QUALIFIERTABLE_OWNER, és TABLE_NAME.

Oszlop név Adattípus Description
TABLE_QUALIFIER sysname Objektum minősítő név. Ez a mező lehet NULL.
TABLE_OWNER sysname Tárgy tulajdonosának neve. Ez a mező mindig értéket ad vissza.
TABLE_NAME sysname Objektum neve. Ez a mező mindig értéket ad vissza.
COLUMN_NAME sysname Oszlop neve, minden visszatért TABLE_NAME oszlophoz. Ez a mező mindig értéket ad vissza.
DATA_TYPE smallint Egész számkód az ODBC adattípushoz. Ha ez az adattípus nem leképezhető egy ODBC típusra, akkor NULLaz . A natív adattípus név megjelenik az TYPE_NAME oszlopban.
TYPE_NAME sysname A karakterlánc, amely egy adattípust képvisel. Az alap DBMS ezt az adattípus nevet mutatja be.
PRECISION int Jelentős számjegyek száma. Az oszlop visszatérési értéke PRECISION a 10-es alapban van.
LENGTH int Az adatok átviteli méretét. 1
SCALE smallint A tizedespont jobb oldalán lévő számjegyek száma.
RADIX smallint Bázis numerikus adattípusokhoz.
NULLABLE smallint Meghatározza a nullitást.

1 = NULL lehetséges.
0 = NEM NULL.
REMARKS Varchar(254) Ez a mező mindig visszaadja NULL.
COLUMN_DEF nvarchar(4000) Az oszlop alapértelmezett értéke.
SQL_DATA_TYPE smallint Az SQL adattípus értéke, ahogyan az megjelenik a leíró TÍPUS mezőjében. Ez az oszlop ugyanaz, mint az oszlop DATA_TYPE , kivéve a datetime és SQL-92 intervallum adattípusokat. Ez az oszlop mindig értéket ad vissza.
SQL_DATETIME_SUB smallint Altípuskód datetime és SQL-92 intervallum adattípusokhoz. Más adattípusok esetén ez az oszlop a -t adja.NULL
CHAR_OCTET_LENGTH int Egy karakter vagy egész szám adattípus oszlop maximális hossza bájtokban. Minden más adattípus esetén ez az oszlop a NULL.
ORDINAL_POSITION int Az oszlop ordinális pozíciója az objektumban. Az objektum első oszlopa 1. Ez az oszlop mindig értéket ad vissza.
IS_NULLABLE Varchar(254) Az objektum oszlopának nullabithetősége. Az ISO szabályait betartják a nullibilitás meghatározására. Egy ISO SQL-kompatibilis adatbázis nem tud üres stringet visszaadni.

YES = Az oszlop tartalmazhatja NULL.
NO = Az oszlop nem tartalmazhat NULL.

Ez az oszlop nulla hosszúságú stringet ad vissza, ha nullitás ismeretlen.

Az adott oszlop által visszaadott érték eltér az oszlop által visszaadott NULLABLE értéktől.
SS_DATA_TYPE tinyint SQL Server adattípus, amelyet kiterjesztett tárolt eljárások használnak. További információ: Adattípusok.

1 További információért lásd az ODBC áttekintését.

Permissions

Követelmények SELECT és VIEW DEFINITION engedélyek a sémához.

Megjegyzések

sp_columns követi a definiált azonosítók követelményeit. További információ: Adatbázis-azonosítók.

Példák

A cikkben szereplő kódminták a AdventureWorks2025 vagy AdventureWorksDW2025 mintaadatbázist használják, amelyet a Microsoft SQL Server-minták és közösségi projektek kezdőlapjáról tölthet le.

A következő példa egy meghatározott tábla oszlopinformációját adja vissza.

USE AdventureWorks2022;
GO

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

Példák: Azure Synapse Analytics and Analytics Platform System (PDW)

A következő példa egy meghatározott tábla oszlopinformációját adja vissza.

USE AdventureWorksDW2022;
GO

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