Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-databas i Microsoft Fabric
Returnerar den optimala uppsättningen kolumner som entydigt identifierar en rad i tabellen. Returnerar också kolumner som automatiskt uppdateras när något värde i raden uppdateras av en transaktion.
Transact-SQL syntaxkonventioner
Syntax
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'
Namnet på tabellen som används för att returnera kataloginformation. @table_name är sysname, utan standard. Wildcard-mönstermatchning stöds inte.
[ @table_owner = ] N'table_owner'
Bordsägaren till tabellen används för att returnera kataloginformation.
@table_owner är sysname, med standardvärdet .NULL Wildcard-mönstermatchning stöds inte. Om @table_owner inte specificeras gäller standardreglerna för tabellsynlighet i det underliggande databashanteringssystemet (DBMS).
I SQL Server, om den nuvarande användaren äger en tabell med det angivna namnet, returneras kolumnerna i den tabellen. Om @table_owner inte är specificerat och den nuvarande användaren inte äger en tabell med den angivna @table_name, letar denna procedur efter en tabell över den specificerade @table_name som ägs av databasägaren. Om tabellen existerar returneras dess kolumner.
[ @table_qualifier = ] N'table_qualifier'
Namnet på bordets kvalificerade.
@table_qualifier är sysname, med standardvärdet .NULL Olika DBMS-produkter stödjer tredelad namngivning för tabeller (<qualifier>.<owner>.<name>). I SQL Server representerar denna kolumn databasens namn. I vissa produkter representerar den servernamnet på databasmiljön i tabellen.
[ @col_type = ] 'col_type'
Kolumntypen.
@col_type är karaktär(1), med en standard på R.
Typen
Rreturnerar den optimala kolumnen eller uppsättningen av kolumner som, genom att hämta värden från kolumnen eller kolumnerna, tillåter att vilken rad som helst i den angivna tabellen kan identifieras entyd. En kolumn kan vara antingen en pseudokolumn designad för detta ändamål, eller kolumnen eller kolumnerna i vilket unikt index som helst för tabellen.Type
Vreturnerar kolumnen eller kolumnerna i den angivna tabellen, om sådana finns, som automatiskt uppdateras av datakällan när något värde i raden uppdateras av någon transaktion.
[ @scope = ] 'scope'
ROWID:s minsta nödvändiga omfattning.
@scope är karaktär(1), med standardvärdet .T
- Scope
Canger att ROWID endast är giltig när den är placerad på den raden. - Scope
Tspecificerar att ROWID är giltigt för transaktionen.
[ @nullable = ] 'nullbar'
Specificerar om de speciella kolumnerna kan acceptera ett NULL värde.
@nullable är karaktär(1), med en standard på U.
-
Ospecificerar speciella kolumner som inte tillåter nollvärden. -
Uspecificerar kolumner som är delvis nullbara.
[ @ODBCVer = ] ODBCVer
ODBC-versionen användes.
@ODBCVer är int, med standardvärdet .2 Detta värde indikerar ODBC version 2.0. För mer information om skillnaden mellan ODBC version 2.0 och ODBC version 3.0, se ODBC-specifikationen SQLSpecialColumns för ODBC version 3.0.
Returnera kodvärden
Ingen.
Resultatuppsättning
| Kolumnnamn | Datatyp | Description |
|---|---|---|
SCOPE |
smallint | Faktisk omfattning av rad-ID:t. Kan vara 0, 1eller 2. SQL Server returnerar 0alltid . Detta fält returnerar alltid ett värde.0 = SQL_SCOPE_CURROW. Rad-ID:t är garanterat giltigt endast när det är placerat på den raden. Ett senare omval med rad-ID kanske inte returnerar en rad om raden uppdaterades eller raderades av en annan transaktion.1 = SQL_SCOPE_TRANSACTION. Rad-ID:t garanteras vara giltigt under hela den aktuella transaktionen.2 = SQL_SCOPE_SESSION. Rad-ID:t garanteras vara giltigt under hela sessionen (över transaktionsgränser). |
COLUMN_NAME |
sysname | Kolumnnamn för varje kolumn i @table_name returnerade. Detta fält returnerar alltid ett värde. |
DATA_TYPE |
smallint | ODBC SQL-datatyp. |
TYPE_NAME |
sysname | Datakällasberoende datatypsnamn; Till exempel Char, Varchar, Money eller Text. |
PRECISION |
int | Precisionen i kolumnen på datakällan. Detta fält returnerar alltid ett värde. |
LENGTH |
int | Längd, i bytes, krävs för datatypen i dess binära form i datakällan, till exempel 10 för char(10),4 för heltal och 2 för smallint. |
SCALE |
smallint | Skalan på kolumnen i datakällan.
NULL returneras för datatyper där skala inte är tillämplig. |
PSEUDO_COLUMN |
smallint | Anger om kolumnen är en pseudokolumn. SQL Server returnerar 1alltid :0 = SQL_PC_UNKNOWN1 = SQL_PC_NOT_PSEUDO2 = SQL_PC_PSEUDO |
Anmärkningar
sp_special_columns motsvarar SQLSpecialColumns i ODBC. De returnerade resultaten är ordnade efter SCOPE.
Permissions
Kräver SELECT tillstånd på schemat.
Examples
Följande exempel returnerar information om kolumnen som entydigt identifierar rader i HumanResources.Department tabellen.
USE AdventureWorks2022;
GO
EXECUTE sp_special_columns
@table_name = 'Department',
@table_owner = 'HumanResources';