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


sp_special_columns (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

Adja vissza az optimális oszlophalmazt, amely egyediben azonosítja a táblázat sorát. Emellett automatikusan frissített oszlopokat is visszaad, amikor a sorban bármely érték tranzakció által frissül.

Transact-SQL szintaxis konvenciók

Szemantika

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 = ] N'table_name'

A táblázat neve a katalógusinformáció visszaadására szolgált. @table_namea sysname, alapértelmezett nélkül. A wildcard mintás párosítás nem támogatott.

[ @table_owner = ] N'table_owner'

A táblázat tulajdonosa a katalógusinformációt küldte vissza. @table_owner a sysname, alapértelmezettként NULL. A wildcard mintás párosítás nem támogatott. Ha @table_owner nincs megadva, akkor az alap adatbázis-kezelő rendszer (DBMS) alapértelmezett táblaláthatósági szabályai érvényesek.

Az SQL Serverben, ha a jelenlegi felhasználó rendelkezik egy megadott nevű táblával, akkor az adott tábla oszlopai visszatérnek. Ha @table_owner nincs megadva, és a jelenlegi felhasználó nem birtokolja a megadott @table_name tábláját, ez az eljárás egy megadott @table_name táblát keres, amely az adatbázis tulajdonosa tulajdonában van. Ha a tábla létezik, akkor az oszlopai visszakerülnek.

[ @table_qualifier = ] N'table_qualifier'

A táblázat selejtező 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 a táblákhoz (<qualifier>.<owner>.<name>). Az SQL Server esetében ez az oszlop az adatbázis nevét jelöli. Néhány termékben ez a tábla adatbázis környezetének szervernevét jelöli.

[ @col_type = ] 'col_type'

Az oszlop típusa. @col_typechar(1), alapértelmezett értéke R.

  • A típus R az optimális oszlopot vagy oszlophalmazt adja vissza, amely az oszlopból vagy oszlopokból származó értékek visszavételével lehetővé teszi, hogy a megadott táblázat bármely sora egyedien azonosítható legyen. Az oszlop lehet erre a célra tervezett pszeudooszlop, vagy bármely táblázat egyedi indexének oszlopa vagy oszlopai.

  • A típus V visszaadja azokat az oszlopokat vagy oszlopokat a megadott táblában, ha van ilyen, amelyeket az adatforrás automatikusan frissít, ha a sorban bármely érték bármely tranzakcióval frissül.

[ @scope = ] 'scope'

A ROWID minimum szükséges hatóköre. @scopechar(1), alapértelmezett értéke T.

  • A Scope C előírja, hogy a ROWID csak akkor érvényes, ha ezen a soron helyezkedik el.
  • A Scope T meghatározza, hogy a ROWID érvényes a tranzakcióra.

[ @nullable = ] 'nullable'

Megadja, hogy a speciális oszlopok elfogadhatnak-e egy NULL értéket. @nullable char (1), alapértelmezett értéke U.

  • O Speciális oszlopokat jelöl, amelyek nem engedélyezik null értékeket.
  • U Olyan oszlopokat határoz meg, amelyek részben nullálhatók.

[ @ODBCVer = ] ODBCVer

Az ODBC verziót használják. @ODBCVerint, alapértelmezés 2. Ez az érték az ODBC 2.0 verziót jelzi. További információért az ODBC 2.0 és az ODBC 3.0 verzió közötti különbségről lásd az ODBC 3.0 verzió ODBC SQLSpecialColumns specifikációját.

Kódértékek visszaadása

Nincs.

Eredményhalmaz

Oszlop név Adattípus Description
SCOPE smallint A sorazonosító tényleges terjedelme. 0Lehet , 1vagy 2. Az SQL Server mindig visszaadja 0. Ez a mező mindig értéket ad vissza.

0 = SQL_SCOPE_CURROW. A sor azonosítója garantáltan érvényes, ha az adott soron helyezkedik el. Egy későbbi sorazonosítóval történő újraválasztás nem biztos, hogy nem hozza vissza a sort, ha a sort egy másik tranzakció frissítette vagy törölte.
1 = SQL_SCOPE_TRANSACTION. A sorazonosító garantáltan érvényes a jelenlegi tranzakció időtartama alatt.
2 = SQL_SCOPE_SESSION. A sorazonosító garantáltan érvényes az ülés időtartamára (tranzakciós határokon át).
COLUMN_NAME sysname A visszaadott @table_name oszlopának oszlopneve. Ez a mező mindig értéket ad vissza.
DATA_TYPE smallint ODBC SQL data type.
TYPE_NAME sysname Adatforrástól függő adattípus név; például char, varchar, money vagy text.
PRECISION int Az oszlop pontossága az adatforráson. Ez a mező mindig értéket ad vissza.
LENGTH int A hossz, bájtokban, amely az adattípus bináris formájában szükséges az adatforrásban, például 10char(10), 4egész szám és 2smallint esetén.
SCALE smallint Az adatforrás oszlopának skálája. NULL olyan adattípusok esetén jelenik meg, amelyekre a méretarány nem alkalmazható.
PSEUDO_COLUMN smallint Jelzi, hogy az oszlop pszeudooszlop-e. Az SQL Server mindig a következőket adja 1vissza:

0 = SQL_PC_UNKNOWN
1 = SQL_PC_NOT_PSEUDO
2 = SQL_PC_PSEUDO

Megjegyzések

sp_special_columnsaz ODBC-vel egyenértékű.SQLSpecialColumns A visszaadott eredményeket a sorban sorolják.SCOPE

Permissions

Engedély SELECT szükséges a sémához.

Példák

A következő példa az oszlopról ad információt, amely egyedien azonosítja a HumanResources.Department táblázat sorait.

USE AdventureWorks2022;
GO

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