Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Microsoft Fabric'te SQL veritabanı
Bu dinamik yönetim fonksiyonu, bir Transact-SQL ifadesini parametre olarak alır ve ifadenin ilk sonuç kümesinin meta verilerini tanımlar.
sys.dm_exec_describe_first_result_set , sys.dm_exec_describe_first_result_set_for_object (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(@tsql, @params, @include_browse_information)
Arguments
@tsql
Bir veya daha fazla Transact-SQL deyimi.
Transact-SQL_batchnvarchar(n) veya nvarchar(max) olabilir.
@params
@params, Transact-SQL partisi için parametreler için sp_executesql'a benzer bir bildirme dizisi sağlar. Parametreler nvarchar(n) veya nvarchar(max) olabilir.
Transact-SQL_batch'e gömülmüş tüm parametrelerin tanımlarını içeren tek bir dizidir. Dize bir Unicode sabiti veya Unicode değişkeni olmalıdır. Her parametre tanımı bir parametre adından ve bir veri türünden oluşur. n, ek parametre tanımlarını gösteren bir yer tutucudur. STMT'de belirtilen her parametre @params'de tanımlanmalıdır. Eğer ifadedeki Transact-SQL ifadesi veya toplu parametre içermiyorsa, @params gerekmez. NULL, bu parametre için varsayılan değerdir.
@include_browse_information
1 olarak ayarlanırsa, her sorgu sorguda GEZİLİK seçeneği varmış gibi analiz edilir. Ek anahtar sütunlar ve kaynak tablo bilgileri geri gönderilir.
Döndürülen Tablo
Bu ortak meta veri sonuç kümesi olarak döner. Sonuç metaverisindeki her sütun için bir satır, aşağıdaki tabloda gösterilen formatta sütunun türünü ve nullability'ni açıklar. 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, gezinme ve bilgi amaçlı eklenen ve sonuç kümesinde aslında görünmeyen ekstra bir sütun olduğunu 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. Eğer yoksa, NULL içerecektir. |
| is_nullable | bit | Aşağıdaki değerleri içerir: Değer 1 eğer sütun NULL'lara izin verirse. Sütun NULL'lara izin vermiyorsa değer 0. Değer 1, eğer sütunun NULL'lara izin verdiği belirlenemiyorsa. |
| system_type_id | int | sys.types'te belirtilen sütun 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) | Sütunun veri tipi için belirlenen isim ve argümanları (uzunluk, hassasiyet, ölçek gibi) içerir. Eğer veri tipi kullanıcı tarafından tanımlanan bir takma ad türüyse, altta yatan sistem tipi burada belirtilmiştir. Veri tipi CLR kullanıcı tarafından tanımlanan 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ürür. |
| 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ürür. |
| 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ürür. |
| 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ürür. |
| 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 dizi türüyse 1 döndürür. Eğer değilse, 0 döndürür. |
| is_fixed_length_clr_type | bit | Sütun sabit uzunlukta bir CLR türüyse 1 döndürür. Eğer değilse, 0 döndürür. |
| source_server | sysname | Kaynak sunucunun adı (eğer uzaktan 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 | Sonuç sütununun yanındaki kaynak 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ıtlamalar dahil) 1, değilse 0 döndürür. Sütunun benzersiz bir indeksin parçası olduğu belirlenemezse NULL döner. Sadece 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 olup olmadığı belirlenemiyorsa NULL döner. |
| 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 konumu SİRGALE LİSTEME olarak yer almaktadır. 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ırayla 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. Hata olmazsa, sütunda NULL bulunur. |
| error_severity | int | Fonksiyonun geri getiren şiddetini içerir. Hata olmazsa, sütunda NULL bulunur. |
| error_state | int | Durum mesajını içerir. Fonksiyon tarafından geri döndü. Hata olmazsa, 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_TYPE_NOT_SUPPORTED | Fonksiyona iletilen @object_id desteklenmez (yani saklanan bir prosedür değildir) |
| 13 | OBJECT_DOES_NOT_EXIST | Fonksiyona aktarılan @object_id sistem kataloğunda bulunmamıştır. |
Permissions
@tsql argümanını çalıştırmak için izin gerekiyor.
Örnekler
Konudaki ek örnekler sp_describe_first_result_set (Transact-SQL) kullanılarak sys.dm_exec_describe_first_result_set kullanılabilir.
A. Tek bir Transact-SQL ifadesi hakkında bilgi geri döner.
Aşağıdaki kod, Transact-SQL ifadesinin sonuçları hakkında bilgi sağlar.
USE AdventureWorks2022;
GO
SELECT * FROM sys.dm_exec_describe_first_result_set
(N'SELECT object_id, name, type_desc FROM sys.indexes', null, 0) ;
B. Bir prosedürle ilgili bilgi geri vermek
Aşağıdaki örnek, iki sonuç kümesi döndüren pr_TestProc adlı bir depolanmış prosedür oluşturur. Sonra örnek, sys.dm_exec_describe_first_result_set prosedürdeki ilk sonuç kümesi hakkında bilgi döndürdüğünü gösterir.
USE AdventureWorks2022;
GO
CREATE PROC Production.TestProc
AS
SELECT Name, ProductID, Color FROM Production.Product ;
SELECT Name, SafetyStockLevel, SellStartDate FROM Production.Product ;
GO
SELECT * FROM sys.dm_exec_describe_first_result_set
('Production.TestProc', NULL, 0) ;
C. Birden fazla ifade içeren bir partiden meta veri döndürme
Aşağıdaki örnek, iki Transact-SQL ifadesi içeren bir grup değerler. Sonuç kümesi, döndürülen ilk sonuç kümesini tanımlar.
USE AdventureWorks2022;
GO
SELECT * FROM sys.dm_exec_describe_first_result_set(
N'SELECT CustomerID, TerritoryID, AccountNumber FROM Sales.Customer WHERE CustomerID = @CustomerID;
SELECT * FROM Sales.SalesOrderHeader;',
N'@CustomerID int', 0) AS a;
GO
Ayrıca Bkz.
sp_describe_first_result_set (Transact-SQL)
sp_describe_undeclared_parameters (Transact-SQL)
sys.dm_exec_describe_first_result_set_for_object (Transact-SQL)