Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL 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í.
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
Rvrací 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
Vvrací 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
Tspecifikuje, ž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.
-
Ospecifikuje speciální sloupce, které neumožňují nullové hodnoty. -
Uspecifikuje 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_UNKNOWN1 = SQL_PC_NOT_PSEUDO2 = 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';
Související obsah
- Katalogizované uložené procedury (Transact-SQL)
- uložené procedury systému (Transact-SQL)