Aracılığıyla paylaş


sys.dm_exec_describe_first_result_set_for_object (Transact-SQL)

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

Bu dinamik yönetim fonksiyonu, bir parametre olarak a'yı @object_id alır ve o ID'ye sahip modül için ilk sonuç metaverisini tanımlar. Belirtilen Transact-SQL @object_id bir işlemin ID'si veya Transact-SQL tetikleyicisi olabilir. Eğer bu, başka herhangi bir nesnenin (örneğin bir görünüm, tablo, fonksiyon veya CLR prosedürü gibi) ID'si ise, sonucun hata sütunlarında bir hata belirtilir.

sys.dm_exec_describe_first_result_set_for_object , sys.dm_exec_describe_first_result_set (Transact-SQL) ile aynı sonuç kümesi tanımına sahiptir ve sp_describe_first_result_set (Transact-SQL) ile benzerdir.

Transact-SQL söz dizimi kuralları

Sözdizimi

  
sys.dm_exec_describe_first_result_set_for_object   
    ( @object_id , @include_browse_information )  

Arguments

@object_id
@object_id Bir Transact-SQL saklanan prosedür ya da Transact-SQL tetikleyici. @object_id Tip int.

@include_browse_information
@include_browse_information Bit tipidir. 1 olarak ayarlanırsa, her sorgu sorguda GEZİLİK seçeneği varmış gibi analiz edilir. Ek anahtar sütunları ve kaynak tablo bilgisi döndürür.

Döndürülen Tablo

Bu yaygın meta veri, sonuç metaverisindeki her sütun için bir satır içeren bir sonuç seti olarak döndürülür. Her satır, sütunun türünü ve nullability'ni aşağıdaki bölümde açıklanan formatta tanımlar. Eğer ilk ifade her kontrol yolu için yoksa, sıfır satır içeren bir sonuç kümesi döner.

Sütun adı Veri türü Description
is_hidden bit Sütunun, bilgi için eklenen ve sonuç kümesinde görünmeyen ekstra bir sütun olup olmadığını belirtir.
column_ordinal int Sonuç kümesindeki sütunun sırasal konumunu içerir. İlk sütunun konumu 1 olarak belirtilecektir.
name sysname Eğer bir isim belirlenebiliyorsa, sütunun adını içerir. Aksi takdirde NULL.
is_nullable bit Sütun NULL'lara izin verirse 1, sütun NULL'lara izin vermiyorsa 0 ve sütunun NULL'lara izin verdiği belirlenemiyorsa 1 değerini içerir.
system_type_id int sys.types'te belirtilen sütunun veri tipinin system_type_id içerir. CLR türleri için, system_type_name sütun NULL döndürse de, bu sütun 240 değerini döndürecektir.
system_type_name nvarchar(256) Veri tipi adını içerir. Sütunun veri tipine göre belirlenen argümanları (uzunluk, hassasiyet, ölçek gibi) içerir. Veri tipi kullanıcı tanımlı bir takma ad türüyse, altta yatan sistem tipi burada belirtilmiştir. Eğer CLR kullanıcı tanımlı bir tipse, NULL bu sütunda döner.
max_length smallint Sütunun uzunluk üst sınırı (bayt cinsinden).

-1 = Sütun veri türü varchar(max), nvarchar(max), varbinary(max)veya xml'dir.

Metin sütunları için max_length değeri 16 veya 'sıradaki metin' ile belirlenen değer sp_tableoption olur.
kesinlik tinyint Sayısal tabanlıysa sütunun hassasiyeti. Aksi takdirde 0 döner.
scale tinyint Sayısal tabanlıysa sütun ölçeği. Aksi takdirde 0 döner.
collation_name sysname Karakter bazlıysa, sütunun derleme ismi. Aksi takdirde NULL döner.
user_type_id int CLR ve alias tipleri için, sys.types'te belirtilen sütunun veri tipinin user_type_id'sini içerir. Aksi takdirde NULL.
user_type_database sysname CLR ve alias türleri için, türün tanımlandığı veritabanının adını içerir. Aksi takdirde NULL.
user_type_schema sysname CLR ve alias türleri için, türün tanımlandığı şemanın adını içerir. Aksi takdirde NULL.
user_type_name sysname CLR ve alias türleri için, türün adını içerir. Aksi takdirde NULL.
assembly_qualified_type_name nvarchar(4000) CLR tipleri için, tipi tanımlayan assembly ve sınıfın adını döndürür. Aksi takdirde NULL.
xml_collection_id int sys.columns'ta belirtilen sütunun veri tipinin xml_collection_id içerir. Bu sütun, döndürülen tip bir XML şema koleksiyonuyla ilişkilendirilmiyorsa NULL döndürecektir.
xml_collection_database sysname Bu tiple ilişkili XML şema koleksiyonunun tanımlandığı veritabanını içerir. Bu sütun, döndürülen tip bir XML şema koleksiyonuyla ilişkilendirilmiyorsa NULL döndürecektir.
xml_collection_schema sysname Bu tiple ilişkili XML şema koleksiyonunun tanımlandığı şemayı içerir. Bu sütun, döndürülen tip bir XML şema koleksiyonuyla ilişkilendirilmiyorsa NULL döndürecektir.
xml_collection_name sysname Bu tiple ilişkili XML şema koleksiyonunun adını içerir. Bu sütun, döndürülen tip bir XML şema koleksiyonuyla ilişkilendirilmiyorsa NULL döndürecektir.
is_xml_document bit Geri dönen veri tipi XML ise ve bu tip tam bir XML belgesi (kök düğüm dahil) garanti altındaysa, XML parçası yerine 1 döndürür. Aksi takdirde 0 döner.
is_case_sensitive bit Sütun büyük harf duyarlı bir dizide ise 1, değilse 0 döner.
is_fixed_length_clr_type bit Sütun sabit uzunlukta CLR tipindeyse 1, değilse 0 döndürür.
source_server sysname Bu sonuçta sütunun geri dönen orijinal sunucusunun adı (eğer uzak bir sunucudan geliyorsa). İsim, sys.servers'te göründüğü şekilde verilmiştir. Sütun yerel sunucudan geliyorsa veya hangi sunucudan geldiği belirlenemiyorsa NULL döner. Sadece gezinme bilgisi istendiğinde doldurulur.
source_database sysname Bu sonuçta sütunun yanından gelen kaynak veritabanının adı. Veritabanı belirlenemezse NULL döner. Sadece gezinme bilgisi istendiğinde doldurulur.
source_schema sysname Bu sonuçta sütunun yanından dönen başlangıç şemasının adı. Şema belirlenemezse NULL döner. Sadece gezinme bilgisi istendiğinde doldurulur.
source_table sysname Bu sonuçta sütunun yanından gelen başlangıç tablosunun adı. Tablo belirlenemezse NULL döner. Sadece gezinme bilgisi istendiğinde doldurulur.
source_column sysname Bu sonuçta sütunun yanından dönen başlangıç sütunun adı. Sütun belirlenemezse NULL döner. Sadece gezinme bilgisi istendiğinde doldurulur.
is_identity_column bit Sütun bir kimlik sütunuysa, 1 döndürür, değilse 0 döndürür. Sütunun bir kimlik sütunu olduğu belirlenemezse NULL döner.
is_part_of_unique_key bit Sütun benzersiz bir indeksin parçası ise (benzersiz ve birincil kısıtlama dahil) 1, değilse 0 döndürür. Sütunun benzersiz bir indeksin parçası olduğu belirlenemezse NULL döner. Yalnızca gezinme bilgisi istendiğinde doldurulur.
is_updateable bit Sütun güncellenebilirse 1, güncellenmiyorsa 0 döndürür. Sütunun güncellenebilir olduğu belirlenemezse NULL döner.
is_computed_column bit Sütun hesaplanan bir sütunsa, 1 döndürür, değilse 0 döndürür. Sütunun hesaplanmış bir sütun olduğu belirlenemezse NULL döndürür.
is_sparse_column_set bit Sütun seyrek bir sütunsa 1, değilse 0 döndürür. Sütunun seyrek bir sütun kümesinin parçası olduğu belirlenemezse NULL döner.
ordinal_in_order_by_list smallint Bu sütunun ORDER BY listesindeki konumu Eğer sütun ORDER BY listesinde görünmüyorsa veya ORDER BY listesi benzersiz olarak belirlenemiyorsa NULL döner.
order_by_list_length smallint Sıra GORÎ listenin uzunluğu. ORDER BY listesi yoksa veya ORDER BY listesi benzersiz olarak belirlenemiyorsa NULL döner. Bu değerin sp_describe_first_result_set tarafından döndürülen tüm satırlar için aynı olacağını unutmayın.
order_by_is_descending smallint NULL Eğer ordinal_in_order_by_list NULL değilse, order_by_is_descending sütunu bu sütun için ORDER BY maddesinin yönünü bildirir. Aksi takdirde NULL raporu veriyor.
error_number int Fonksiyonun döndürüp getirdiği hata sayısını içerir. Sütunda hata olmazsa NULL içerir.
error_severity int Fonksiyonun geri getiren şiddetini içerir. Sütunda hata olmazsa NULL içerir.
error_state int Fonksiyonun geri dönen durum mesajını içerir. Hata olmadıysa. sütunda NULL bulunur.
error_message nvarchar(4096) Fonksiyonun geri gönderdiği mesajı içerir. Hata olmazsa, sütunda NULL bulunur.
error_type int Geri dönen hatayı temsil eden bir tam sayı içerir. Haritalar error_type_desc. Listeye Açıklamalar altındaki bakınız.
error_type_desc nvarchar(60) Geri dönen hatayı temsil eden kısa bir büyük harf dizisi içerir. Haritalar error_type. Listeye Açıklamalar altındaki bakınız.

Açıklamalar

Bu fonksiyon, sp_describe_first_result_set ile aynı algoritmayı kullanır. Daha fazla bilgi için sp_describe_first_result_set (Transact-SQL) sayfasına bakınız.

Aşağıdaki tablo hata türlerini ve açıklamalarını listelemektedir

error_type error_type Description
1 MİSC Başka şekilde açıklanmayan tüm hatalar.
2 SÖZDİZİMİ Partide bir sözdizimi hatası meydana geldi.
3 CONFLICTING_RESULTS Sonuç, iki olası ilk ifade arasındaki çelişki nedeniyle belirlenemedi.
4 DYNAMIC_SQL Sonuç, potansiyel olarak ilk sonucu geri getirebilecek dinamik SQL nedeniyle belirlenemedi.
5 CLR_PROCEDURE Sonuç belirlenemedi, çünkü bir CLR depolanmış prosedür potansiyel olarak ilk sonucu geri getirebilirdi.
6 CLR_TRIGGER Sonuç belirlenemedi çünkü bir CLR tetikleyicisi potansiyel olarak ilk sonucu geri getirebilirdi.
7 EXTENDED_PROCEDURE Sonuç belirlenemedi, çünkü genişletilmiş bir depolanmış prosedür potansiyel olarak ilk sonucu geri getirebilirdi.
8 UNDECLARED_PARAMETER Sonuç belirlenemedi; çünkü sonuç kümesinin bir veya daha fazla sütununun veri türü potansiyel olarak bildirilmemiş bir parametreye bağlıdır.
9 ÖZYİNELEME Sonuç belirlenemedi çünkü toplu bir özyinelemeli ifade içeriyordu.
10 TEMPORARY_TABLE Sonuç belirlenemedi çünkü parti geçici bir tablo içeriyor ve sp_describe_first_result_set tarafından desteklenmiyor.
11 UNSUPPORTED_STATEMENT Sonuç belirlenemedi, çünkü toplu bölüm sp_describe_first_result_set tarafından desteklenmeyen bir ifade içeriyor (örneğin, FETCH, REVERT vb.).
12 OBJECT_ID_NOT_SUPPORTED @object_id Fonksiyona iletilen işlem desteklenmez (yani saklanan bir prosedür değildir)
13 OBJECT_ID_DOES_NOT_EXIST @object_id Fonksiyona geçiş sistemi kataloğunda bulunmamıştır.

Permissions

Argümanı @tsql çalıştırmak için izin gerekiyor.

Örnekler

A. Gezinme bilgisi olan ve olmayan meta verilerin döndürülmesi

Aşağıdaki örnek, iki sonuç kümesi döndüren TestProc2 adlı bir kayıtlı prosedür oluşturur. Örnek, sys.dm_exec_describe_first_result_set'nin prosedürdeki ilk sonuç kümesi hakkında, gezinme bilgisi ile ve olmadan bilgi döndürdüğünü gösterir.

CREATE PROC TestProc2  
AS  
SELECT object_id, name FROM sys.objects ;  
SELECT name, schema_id, create_date FROM sys.objects ;  
GO  
  
SELECT * FROM sys.dm_exec_describe_first_result_set_for_object(OBJECT_ID('TestProc2'), 0) ;  
SELECT * FROM sys.dm_exec_describe_first_result_set_for_object(OBJECT_ID('TestProc2'), 1) ;  
GO  

B. sys.dm_exec_describe_first_result_set_for_object fonksiyonu ile bir tablo veya görünüm birleştirme

Aşağıdaki örnek, veritabanında saklanan tüm prosedürlerin sonuç kümeleri için meta verileri göstermek için hem sys.procedures sistem katalog görünümünü hem AdventureWorks2025 fonksiyonunu kullanır.

USE AdventureWorks2022;  
GO  
  
SELECT p.name, r.*   
FROM sys.procedures AS p  
CROSS APPLY sys.dm_exec_describe_first_result_set_for_object(p.object_id, 0) AS r;  
GO  
  

Ayrıca Bkz.

sp_describe_first_result_set (Transact-SQL)
sp_describe_undeclared_parameters (Transact-SQL)
sys.dm_exec_describe_first_result_set (Transact-SQL)