Sdílet prostřednictvím


sp_special_columns (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL databáze v Microsoft Fabric

Vrátí optimální sadu sloupců, které jednoznačně identifikují řádek v tabulce. Také automaticky vrací sloupce, které se aktualizují, když je jakákoli hodnota v řádku aktualizována transakcí.

Transact-SQL konvence syntaxe

Syntaxe

sp_special_columns
    [ @table_name = ] N'table_name'
    [ , [ @table_owner = ] N'table_owner' ]
    [ , [ @table_qualifier = ] N'table_qualifier' ]
    [ , [ @col_type = ] 'col_type' ]
    [ , [ @scope = ] 'scope' ]
    [ , [ @nullable = ] 'nullable' ]
    [ , [ @ODBCVer = ] ODBCVer ]
[ ; ]

Arguments

[ @table_name = ] 'Ntable_name'

Název tabulky používané pro vrácení informací z katalogu. @table_name je sysname, bez výchozího nastavení. Wildcard pattern matching není podporován.

[ @table_owner = ] N'table_owner'

Vlastník tabulky se používal k vracení informací z katalogu. @table_owner je sysname, s výchozím nastavením NULL. Wildcard pattern matching není podporován. Pokud @table_owner není specifikováno, platí výchozí pravidla pro viditelnost tabulek základního databázového systému (DBMS).

V SQL Serveru, pokud aktuální uživatel vlastní tabulku s tímto jménem, sloupce této tabulky se vrátí. Pokud @table_owner není specifikováno a aktuální uživatel nevlastní tabulku s daným @table_name, tento postup hledá tabulku specifikovaných @table_name vlastněných vlastníkem databáze. Pokud tabulka existuje, její sloupce se vrátí.

[ @table_qualifier = ] N'table_qualifier'

Název kvalifikanta na tabulce. @table_qualifier je sysname, s výchozím .NULL Různé produkty DBMS podporují třífázové pojmenování tabulek (<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í tabulky.

[ @col_type = ] 'col_type'

Typ sloupce. @col_type je char(1), s výchozím hodnotou R.

  • Type R vrací optimální sloupec nebo množinu sloupců, které získáním hodnot z tohoto sloupce nebo sloupců umožňují jednoznačnou identifikaci jakéhokoli řádku v dané tabulce. Sloupec může být buď pseudosloupec navržený pro tento účel, nebo sloupec či sloupce libovolného unikátního indexu tabulky.

  • Typ V vrací sloupec nebo sloupce ve specifikované tabulce, pokud nějaké jsou, které jsou automaticky aktualizovány datovým zdrojem, když je jakákoli hodnota v řádku aktualizována jakoukoli transakcí.

[ @scope = ] 'rozsah'

Minimální požadovaný rozsah ROWID. @scope je char(1), s výchozím hodnotou T.

  • Scope specifikuje C , že ROWID je platný pouze tehdy, když je umístěn na daném řádku.
  • Scope T specifikuje, že ROWID je pro transakci platný.

[ @nullable = ] 'nulovatelný'

Specifikuje, zda speciální sloupce mohou přijmout hodnotu NULL . @nullable je char(1), s výchozím hodnotou U.

  • O specifikuje speciální sloupce, které neumožňují nullové hodnoty.
  • U specifikuje sloupce, které jsou částečně nulovatelné.

[ @ODBCVer = ] ODBCVer

Používá se verze ODBC. @ODBCVer je int, s výchozím nastavením 2. Tato hodnota označuje ODBC verzi 2.0. Pro více informací o rozdílu mezi verzí ODBC 2.0 a ODBC verzí 3.0 viz specifikace ODBC SQLSpecialColumns verze 3.0.

Hodnoty návratového kódu

Žádné.

Sada výsledků

Název sloupce Datový typ Description
SCOPE smallint Skutečný rozsah ID řádku. Může být 0, 1nebo 2. SQL Server vždy vrací 0. Toto pole vždy vrací hodnotu.

0 = SQL_SCOPE_CURROW. ID řádku je zaručeně platné pouze tehdy, když je umístěno na dané řadě. Pozdější opětovný výběr pomocí ID řádku nemusí vrátit řádek, pokud byl řádek aktualizován nebo smazán jinou transakcí.
1 = SQL_SCOPE_TRANSACTION. ID řádku je zaručeně platné po dobu trvání aktuální transakce.
2 = SQL_SCOPE_SESSION. ID řádku je zaručeně platné po celou dobu trvání relace (přes hranice transakcí).
COLUMN_NAME sysname Název sloupce pro každý sloupec @table_name vrácen. Toto pole vždy vrací hodnotu.
DATA_TYPE smallint ODBC SQL datový typ.
TYPE_NAME sysname název datového typu závislého na zdroji dat; například char, varchar, peníze nebo text.
PRECISION int Přesnost sloupce na zdroji dat. Toto pole vždy vrací hodnotu.
LENGTH int Délka v bajtech je vyžadována pro datový typ v jeho binární podobě ve zdroji, například 10 pro char(10),4 pro celočíselná čísla a 2 pro smallint.
SCALE smallint Měřítko sloupce na datovém zdroji. NULL se vrací pro datové typy, pro které škálování není použitelné.
PSEUDO_COLUMN smallint Označuje, zda je sloupec pseudosloupec. SQL Server vždy vrací 1:

0 = SQL_PC_UNKNOWN
1 = SQL_PC_NOT_PSEUDO
2 = SQL_PC_PSEUDO

Poznámky

sp_special_columns je ekvivalentní s v SQLSpecialColumns ODBC. Výsledky vrácené jsou uspořádány podle SCOPE.

Povolení

Vyžaduje SELECT povolení ke schématu.

Examples

Následující příklad vrací informace o sloupci, který jednoznačně identifikuje řádky v tabulce HumanResources.Department .

USE AdventureWorks2022;
GO

EXECUTE sp_special_columns
    @table_name = 'Department',
    @table_owner = 'HumanResources';