Sdílet prostřednictvím


sp_columns (Transact-SQL)

Platí pro:SQL ServerAzure SQL DatabaseSpravovaná instance Azure SQLAzure Synapse AnalyticsAnalytics Platform System (PDW)Koncový bod analýzy SQL v Microsoft FabricSklad v Microsoft FabricDatabáze SQL v Microsoft Fabric

Vrací sloupcové informace pro specifikované objekty, které lze dotazovat v aktuálním prostředí.

Transact-SQL konvence syntaxe

Syntaxe

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 = ] 'Ntable_name'

@table_name je nvarchar(384), bez výchozího nastavení.

Název objektu, který se používá k vrácení informací z katalogu. @table_name může být tabulka, pohled nebo jiný objekt, který tvoří sloupce, například funkce s tabulkovými hodnotami. @table_name je nvarchar(384), bez výchozího nastavení. Je podporováno porovnávání vzorů divoké karty.

[ @table_owner = ] N'table_owner'

Vlastník objektu objektu, který se používá k vrácení informací z katalogu. @table_owner je nvarchar(384), s výchozím hodnotou NULL. Je podporováno porovnávání vzorů divoké karty. Pokud @table_owner není specifikováno, platí výchozí pravidla pro viditelnost objektů v základním DBMS.

Pokud aktuální uživatel vlastní objekt s tímto jménem, sloupce tohoto objektu se vrátí. Pokud @table_owner není specifikováno a současný uživatel nevlastní objekt s daným @table_name, sp_columns hledejte objekt s tímto specifikovaným @table_name vlastněným vlastníkem databáze. Pokud existuje, sloupce daného objektu se vrátí.

[ @table_qualifier = ] N'table_qualifier'

@table_qualifier je sysname, s výchozím .NULL

Název kvalifikátoru objektu. @table_qualifier je sysname, s výchozím .NULL Různé produkty DBMS podporují třífázové pojmenování objektů (<qualifier>.<owner>.<name>). V SQL Serveru tento sloupec představuje název databáze. V některých produktech představuje název serveru databázového prostředí objektu.

[ @column_name = ] N'column_name'

Jeden sloupec a používá se, když je požadován pouze jeden sloupec katalogových informací. @column_name je nvarchar(384), s výchozím hodnotou NULL. Pokud @column_name není specifikováno, všechny sloupce se vrátí. V SQL Serveru @column_name představuje název sloupce, jak je uveden v tabulce syscolumns . Je podporováno porovnávání vzorů divoké karty. Pro maximální interoperabilitu by klient brány měl přebírat pouze standardní porovnání vzorů SQL-92 (znaky % a _ žolíkové znaky).

[ @ODBCVer = ] ODBCVer

Verze ODBC, která se používá. @ODBCVer je int, s výchozím nastavením 2. To naznačuje ODBC verzi 2. Platné hodnoty jsou 2 nebo 3. Pro rozdíly v chování mezi verzemi 2 a 3 viz specifikace ODBC SQLColumns .

Hodnoty návratového kódu

Žádné.

Sada výsledků

Procedura sp_columns uložená v katalogu je ekvivalentní jako SQLColumns v ODBC. Výsledky vrácené jsou uspořádány podle TABLE_QUALIFIER, TABLE_OWNER, a TABLE_NAME.

Název sloupce Datový typ Description
TABLE_QUALIFIER sysname Název kvalifikátoru objektu. Toto pole může být .NULL
TABLE_OWNER sysname Jméno vlastníka objektu. Toto pole vždy vrací hodnotu.
TABLE_NAME sysname Název objektu. Toto pole vždy vrací hodnotu.
COLUMN_NAME sysname Název sloupce pro každý sloupec vráceného sloupce TABLE_NAME . Toto pole vždy vrací hodnotu.
DATA_TYPE smallint Celočíselný kód pro datový typ ODBC. Pokud tento datový typ nelze mapovat na typ ODBC, je NULLto . Nativní název datového typu se vrací ve sloupci TYPE_NAME .
TYPE_NAME sysname Řetězec reprezentující datový typ. Základní DBMS představuje tento název datového typu.
PRECISION int Počet významných číslic. Návratová hodnota sloupce PRECISION je v soustavě 10.
LENGTH int Velikost přenosu dat. 1
SCALE smallint Počet číslic napravo od desetinné čárky.
RADIX smallint Základ pro numerické datové typy.
NULLABLE smallint Specifikuje nulovatelnost.

1 = NULL je možné.
0 = NE NULL.
REMARKS varchar(254) Toto pole vždy vrací NULL.
COLUMN_DEF nvarchar(4000) Výchozí hodnota sloupce
SQL_DATA_TYPE smallint Hodnota SQL datového typu, jak se objevuje v poli TYPE v deskriptoru. Tento sloupec je stejný jako sloupecDATA_TYPE, kromě datových typů intervalů pro datetime a SQL-92. Tento sloupec vždy vrací hodnotu.
SQL_DATETIME_SUB smallint Podtyp kód pro datové typy datového času a intervalů v SQL-92. Pro jiné datové typy tento sloupec vrací NULL.
CHAR_OCTET_LENGTH int Maximální délka sloupce znaku nebo celočíselného datového typu v bajtech. Pro všechny ostatní datové typy tento sloupec vrací NULL.
ORDINAL_POSITION int Ordinální pozice sloupce v objektu. První sloupec objektu je 1. Tento sloupec vždy vrací hodnotu.
IS_NULLABLE varchar(254) Nulovatelnost sloupce v objektu. Pravidla ISO se dodržují pro určení neplatnosti. DBMS kompatibilní s ISO SQL nemůže vrátit prázdný řetězec.

YES = Sloupec může obsahovat NULL.
NO = Sloupec nemůže obsahovat NULL.

Tento sloupec vrací řetězec nulové délky, pokud není nulovost známa.

Hodnota vrácená pro tento sloupec se liší od hodnoty vrácené pro sloupec NULLABLE .
SS_DATA_TYPE tinyint Typ dat SQL Server používaný rozšířenými uloženými procedurami. Další informace naleznete v tématu Datové typy.

1 Pro více informací viz Přehled ODBC.

Povolení

Požadavky SELECT a VIEW DEFINITION oprávnění na schématu.

Poznámky

sp_columns splňuje požadavky na vymezené identifikátory. Další informace naleznete v tématu Identifikátory databáze.

Examples

Ukázky kódu v tomto článku používají ukázkovou databázi AdventureWorks2025 nebo AdventureWorksDW2025, kterou si můžete stáhnout z domovské stránky Microsoft SQL Serveru pro ukázky a komunitní projekty .

Následující příklad vrací informace o sloupcích pro zadanou tabulku.

USE AdventureWorks2022;
GO

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

Příklady: Azure Synapse Analytics a Analytický platformový systém (PDW)

Následující příklad vrací informace o sloupcích pro zadanou tabulku.

USE AdventureWorksDW2022;
GO

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