Aracılığıyla paylaş


sp_special_columns (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'te SQL veritabanı

Tablodaki bir satırı benzersiz şekilde tanımlayan optimal sütun kümesini döndürür. Ayrıca, satırdaki herhangi bir değer işlem tarafından güncellendiğinde otomatik olarak güncellenen sütunları döndürür.

Transact-SQL söz dizimi kuralları

Sözdizimi

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'

Katalog bilgisini döndürmek için kullanılan tablonun adı. @table_namesysname'dir, varsayılan yoktur. Wildcard desen eşleştirme desteklenmiyor.

[ @table_owner = ] N'table_owner'

Tablonun sahibi katalog bilgilerini döndürmek için kullanılırdı. @table_ownersysname'dir ve varsayılan olarak .NULL Wildcard desen eşleştirme desteklenmiyor. Eğer @table_owner belirtilmemişse, temel veritabanı yönetim sisteminin (DBMS) varsayılan tablo görünürlüğü kuralları uygulanır.

SQL Server'da, mevcut kullanıcı belirtilen isimle bir tabloya sahipse, o tablonun sütunları döner. Eğer @table_owner belirtilmemişse ve mevcut kullanıcı belirtilen @table_name tablosuna sahip değilse, bu prosedür veritabanı sahibine ait olan belirtilen @table_name tablosunu arar. Tablo varsa, sütunları geri döner.

[ @table_qualifier = ] N'table_qualifier'

Tablo nitelendirmesinin adı. @table_qualifiersysname'dir ve varsayılan olarak .NULL Çeşitli DBMS ürünleri, tablolar için üç bölümlü adlandırmayı destekler (<qualifier>.<owner>.<name>). SQL Server'da bu sütun veritabanı adını temsil eder. Bazı ürünlerde, tablonun veritabanı ortamının sunucu adını temsil eder.

[ @col_type = ] 'col_type'

Sütun türü. @col_typechar(1)'dir ve varsayılan olarak .R

  • Tür R , sütun veya sütunlardan değerler alınarak belirlenen tablodaki herhangi bir satırın benzersiz şekilde tanımlanmasını sağlayan optimal sütun veya sütun kümesini döndürür. Bir sütun, bu amaçla tasarlanmış bir sözde sütun veya tablo için herhangi bir benzersiz indeksin sütunu veya sütunları olabilir.

  • Tip V , varsa, belirtilen tablodaki sütun veya sütunları döndürür; bunlar satırdaki herhangi bir değer herhangi bir işlem tarafından güncellendiğinde veri kaynağı tarafından otomatik olarak güncellenir.

[ @scope = ] 'kapsam'

ROWID'in minimum gerekli kapsamı. @scope, char(1)'dir ve varsayılan olarak .T

  • Kapsam C , ROWID'in yalnızca o satırda konumlandığında geçerli olduğunu belirtir.
  • Kapsam T , ROWID'nin işlem için geçerli olduğunu belirtir.

[ @nullable = ] 'iptal edilebilir'

Özel sütunların bir NULL değeri kabul edip edemeyeceğini belirtir. @nullable , char(1)'dir ve varsayılan olarak U'dir.

  • O Null değerlere izin vermeyen özel sütunları belirtir.
  • U kısmen nullable olan sütunları belirtir.

[ @ODBCVer = ] ODBCVer

ODBC versiyonu kullanılıyor. @ODBCVerint, varsayılan olarak .2 Bu değer ODBC sürüm 2.0'ı gösterir. ODBC sürüm 2.0 ile ODBC sürüm 3.0 arasındaki fark hakkında daha fazla bilgi için ODBC sürüm 3.0 için ODBC SQLSpecialColumns spesifikasyonuna bakınız.

Dönüş kodu değerleri

Yok.

Sonuç kümesi

Sütun adı Veri türü Description
SCOPE smallint Sıra kimliğinin gerçek kapsamı. , 0veya 1olabilir2. SQL Server her zaman döner 0. Bu alan her zaman bir değer döndürür.

0 = SQL_SCOPE_CURROW. Satır kimliği yalnızca o sırada konumlandığında geçerli olacağı garanti edilir. Daha sonra satır kimliği kullanılarak yapılan bir yeniden seçim, satır başka bir işlemle güncellenmiş veya silinmişse satır döndürmeyebilir.
1 = SQL_SCOPE_TRANSACTION. Sıra kimliğinin mevcut işlem süresi boyunca geçerli olacağı garanti edilir.
2 = SQL_SCOPE_SESSION. Satır kimliğinin oturum süresi boyunca (işlem sınırları ötesinde) geçerli olması garanti edilir.
COLUMN_NAME sysname Geri dönen @table_name sütununun her sütunu için adı. Bu alan her zaman bir değer döndürür.
DATA_TYPE smallint ODBC SQL veri tipi.
TYPE_NAME sysname Veri kaynağına bağlı veri tipi adı; örneğin, char, varchar, para veya metin.
PRECISION int Veri kaynağındaki sütunun hassasiyeti. Bu alan her zaman bir değer döndürür.
LENGTH int Uzunluk, bayt cinsinden, veri tipinin veri kaynağında ikili formunda, örneğin 10char(10) için, 4tam sayı için ve 2smallint için.
SCALE smallint Veri kaynağındaki sütunun ölçeği. NULL ölçek uygulanamayan veri türleri için döner.
PSEUDO_COLUMN smallint Sütunun bir sözde sütun olup olmadığını gösterir. SQL Server her zaman şunları döndürür 1:

0 = SQL_PC_UNKNOWN
1 = SQL_PC_NOT_PSEUDO
2 = SQL_PC_PSEUDO

Açıklamalar

sp_special_columns ODBC'deki eşdeğerdir SQLSpecialColumns . Geri dönen sonuçlar şu şekilde sıralanmıştır SCOPE.

Permissions

Şema için izin gerekiyor SELECT .

Örnekler

Aşağıdaki örnek, tablodaki satırları HumanResources.Department benzersiz şekilde tanımlayan sütun hakkında bilgi verir.

USE AdventureWorks2022;
GO

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