Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Baza danych SQL w usłudze Microsoft Fabric
Zwraca optymalny zbiór kolumn, które jednoznacznie identyfikują wiersz w tabeli. Zwraca także kolumny automatycznie aktualizowane, gdy jakakolwiek wartość w wierszu zostanie zaktualizowana przez transakcję.
Transact-SQL konwencje składni
Składnia
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'
Nazwa tabeli używanej do zwracania informacji katalogowych. @table_name to sysname, bez domyślnego ustawienia. Nie jest obsługiwane dopasowanie wzorców z dziką kartą.
[ @table_owner = ] N'table_owner'
Właściciel tabeli służył do zwracania informacji z katalogu.
@table_owner to nazwa systemu, z domyślnym .NULL Nie jest obsługiwane dopasowanie wzorców z dziką kartą. Jeśli @table_owner nie jest określona, stosuje się domyślne reguły widoczności tabel w systemie zarządzania bazą danych (DBMS).
W SQL Server, jeśli aktualny użytkownik posiada tabelę o podanej nazwie, kolumny tej tabeli są zwracane. Jeśli @table_owner nie jest określona, a aktualny użytkownik nie posiada tabeli o określonym @table_name, procedura ta szuka tabeli o określonych @table_name należących do właściciela bazy danych. Jeśli tabela istnieje, jej kolumny są zwracane.
[ @table_qualifier = ] N'table_qualifier'
Nazwa kwalifikatora tabeli.
@table_qualifier to nazwa systemu, z domyślnym obciążeniem NULL. Różne produkty DBMS obsługują trzyczęściowe nazewnictwo tabel (<qualifier>.<owner>.<name>). W SQL Server ta kolumna oznacza nazwę bazy danych. W niektórych produktach reprezentuje nazwę serwera środowiska bazodanowego tabeli.
[ @col_type = ] 'col_type'
Typ kolumny.
@col_type jest char(1), z domyślnym poziomem R.
Type
Rzwraca optymalną kolumnę lub zbiór kolumn, który poprzez pobranie wartości z tej kolumny lub kolumn pozwala na jednoznaczną identyfikację dowolnego wiersza w określonej tabeli. Kolumna może być albo pseudokolumną zaprojektowaną do tego celu, albo kolumną lub kolumnami dowolnego unikalnego indeksu dla tabeli.Typ
Vzwraca kolumnę lub kolumny w określonej tabeli, jeśli takie są, które są automatycznie aktualizowane przez źródło danych, gdy dowolna wartość w wierszu zostanie zaktualizowana przez dowolną transakcję.
[ @scope = ] 'zakres'
Minimalny wymagany zakres ROWID.
@scope to char(1), z domyślnym .T
- Zakres określa,
Cże ROWID jest ważny tylko wtedy, gdy jest umieszczony w tym wierszu. - Zakres
Tokreśla, że ROWID jest ważny dla transakcji.
[ @nullable = ] 'nulowalny'
Określa, czy kolumny specjalne mogą przyjmować wartość NULL .
@nullable jest char(1), z domyślnym .U
-
Ookreśla specjalne kolumny, które nie dopuszczają wartości null. -
Uokreśla kolumny, które są częściowo nieważne.
[ @ODBCVer = ] ODBCVer
Używana jest wersja ODBC.
@ODBCVer jest int, z domyślnym obciążeniem 2. Ta wartość wskazuje na wersję ODBC 2.0. Aby uzyskać więcej informacji na temat różnic między wersją ODBC 2.0 a ODBC wersją 3.0, zobacz specyfikację ODBC SQLSpecialColumns dla wersji 3.0 ODBC.
Zwracanie wartości kodu
Żaden.
Zestaw wyników
| Nazwa kolumny | Typ danych | Description |
|---|---|---|
SCOPE |
smallint | Rzeczywisty zakres ID wiersza. Może to być 0, 1lub 2. SQL Server zawsze zwraca .0 To pole zawsze zwraca wartość.0 = SQL_SCOPE_CURROW. ID wiersza jest gwarantowany jako ważny tylko wtedy, gdy jest ustawiony na tym wierszu. Późniejsze ponowne zaznaczenie z ID wiersza może nie zwrócić wiersza, jeśli wiersz został zaktualizowany lub usunięty przez inną transakcję.1 = SQL_SCOPE_TRANSACTION. ID wiersza jest gwarantowany jako ważny przez cały czas trwania bieżącej transakcji.2 = SQL_SCOPE_SESSION. ID wiersza jest gwarantowany jako ważny przez cały czas trwania sesji (ponad granicami transakcji). |
COLUMN_NAME |
sysname | Nazwa kolumny dla każdej kolumny @table_name zwracana. To pole zawsze zwraca wartość. |
DATA_TYPE |
smallint | Typ danych ODBC SQL. |
TYPE_NAME |
sysname | Nazwa typu danych zależna od źródła danych; na przykład char, varchar, pieniądze lub tekst. |
PRECISION |
int | Precyzja kolumny na źródle danych. To pole zawsze zwraca wartość. |
LENGTH |
int | Długość w bajtach wymagana dla typu danych w jego formie binarnej w źródle danych, na przykład 10 dla char(10),4 dla liczb całkowitych oraz 2dla smallint. |
SCALE |
smallint | Skala kolumny na źródle danych.
NULL zwraca się dla typów danych, dla których skala nie jest stosowana. |
PSEUDO_COLUMN |
smallint | Wskazuje, czy kolumna jest pseudokolumną. SQL Server zawsze zwraca:10 = SQL_PC_UNKNOWN1 = SQL_PC_NOT_PSEUDO2 = SQL_PC_PSEUDO |
Uwagi
sp_special_columns jest równoważna w SQLSpecialColumns ODBC. Wyniki zwracane są uporządkowane według .SCOPE
Permissions
Wymaga SELECT zgody na schemat.
Przykłady
Poniższy przykład zwraca informacje o kolumnie, która jednoznacznie identyfikuje wiersze w tabeli HumanResources.Department .
USE AdventureWorks2022;
GO
EXECUTE sp_special_columns
@table_name = 'Department',
@table_owner = 'HumanResources';