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 ilanının ilk sonuç kümesi için meta veriyi döndürür.
sys.dm_exec_describe_first_result_set
sys.dm_exec_describe_first_result_set_for_object ile aynı sonuç kümesi tanımını döndürür ve sp_describe_first_result_set'a benzer.
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. @tsql partisi nvarchar(n) veya nvarchar(max) olabilir.
@params
@params, Transact-SQL partisi için parametreler için bir bildirme dizisi sağlar; benzer.sp_executesql Parametreler nvarchar(n) veya nvarchar(max) olabilir.
@tsql partisine gömülü tüm parametrelerin tanımlarını içeren tek bir dize. 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. deyimindeki Transact-SQL deyimi veya toplu işlemi parametre içermiyorsa @params gerekli değildir.
NULL bu parametre için varsayılan değerdir.
@include_browse_information
1 olarak ayarlanırsa, her sorgu sorguda bir seçenek varmış FOR BROWSE gibi analiz edilir. Sonuç ekstra ana sütunlar ve kaynak tablo bilgisi içerir.
Tablo geri getirildi
Fonksiyon, bu ortak metaveriyi bir sonuç kümesi olarak döndürür. Her satır, sonuç metaverisindeki bir sütuna karşılık gelir ve aşağıdaki tabloda gösterilen formatta sütunun türünü ve nullability'ni tanımlar. Eğer her kontrol yolu için ilk ifade yoksa, fonksiyon sıfır satırlı bir sonuç kümesi döndürür.
| Sütun adı | Veri türü | Description |
|---|---|---|
is_hidden |
bit | Sütunun, gezinme ve bilgilendirme amaçlı eklenen ekstra bir sütun olduğunu, ancak aslında sonuç kümesinde görünmediğini belirtir. |
column_ordinal |
int | Sonuç kümesindeki sütunun sırasal konumunu içerir. İlk sütunun konumu olarak belirtilir 1. |
name |
sysname | Eğer bir isim belirlenebiliyorsa, sütunun adını içerir. Eğer değilse, NULL. |
is_nullable |
bit | Aşağıdaki değerleri içerir: Sütun değer izinliyorsa NULL döner1.Sütun değerlere izin NULL vermiyorsa döner0.Sütunun değerlere izin NULL verdiği belirlenemezse döner1. |
system_type_id |
int | 'de belirtilen sys.typessütun veri tipini içerirsystem_type_id. CLR türleri için, sütun system_type_name döndürse NULLbile, bu sütun 240döndürür. |
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. Eğer veri tipi 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.Metin sütunları için değer max_length16, ya da değer olarak belirlenirsp_tableoption 'text in row'. |
precision |
tinyint | Sayısal tabanlıysa sütunun hassasiyeti. Aksi takdirde 0döndürür. |
scale |
tinyint | Sayısal tabanlıysa sütun ölçeği. Aksi takdirde 0döndürür. |
collation_name |
sysname | Karakter bazlıysa, sütunun derleme ismi. Aksi takdirde NULLdöndürür. |
user_type_id |
int | CLR ve alias türleri için, user_type_id sütunun veri tipinin 'de belirtildiği sys.typesgibi. 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 |
xml_collection_id'de belirtildiği gibi sütunun veri türünün sys.columns içerir. Bu sütun, döndürülen tip bir XML şema koleksiyonuyla ilişkilendirilmiyorsa döner NULL . |
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 döner NULL . |
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 döner NULL . |
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 döner NULL . |
is_xml_document |
bit |
1 Geri dönen veri tipi XML ise ve bu tip tam bir XML belgesi (kök düğüm dahil, XML parçası değil) garanti edilirse. Aksi takdirde 0döndürür. |
is_case_sensitive |
bit | Sütun büyük harf duyarlı bir dizi türündeyse döner 1 .
0 Eğer dönerse geri gelir. |
is_fixed_length_clr_type |
bit | Sütun sabit uzunlukta bir CLR tipindeyse döndürer 1 .
0 Eğer dönerse geri gelir. |
source_server |
sysname | Kaynak sunucunun adı (eğer uzaktan bir sunucudan geliyorsa). Ad, sys.serversiçinde göründüğü şekilde verilir. Sütunun kaynağı yerel sunucudaysa veya hangi sunucudan kaynaklandığı belirlenemiyorsa NULL döndürür. Sadece gezinme bilgisi istendiğinde doldurulur. |
source_database |
sysname | Bu sonuçta sütunun yanından gelen kaynak veritabanının adı. Veritabanı belirlenemiyorsa NULL döndürür. 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 belirlenemiyorsa NULL döndürür. Sadece gezinme bilgisi istendiğinde doldurulur. |
source_table |
sysname | Bu sonuçta sütunun yanından gelen başlangıç tablosunun adı. Tablo belirlenemiyorsa NULL döndürür. Sadece gezinme bilgisi istendiğinde doldurulur. |
source_column |
sysname | Sonuç sütununun yanındaki kaynak sütunun adı. Sütun belirlenemiyorsa NULL döndürür. Sadece gezinme bilgisi istendiğinde doldurulur. |
is_identity_column |
bit | Sütun bir kimlik sütunuysa, değilse 0 döndürer 1 . Sütunun bir kimlik sütunu olduğu belirlenemezse NULL döndürür. |
is_part_of_unique_key |
bit | Sütun benzersiz bir indeksin parçası ise (benzersiz ve birincil kısıtlamalar dahil) ise 0 döndürür 1 . Sütunun benzersiz bir dizinin parçası olduğu belirlenemezse NULL döndürür. Sadece gezinme bilgisi istendiğinde doldurulur. |
is_updateable |
bit | Sütun güncellenebilirse 0 döndürüyor, değilse 0 döndürüyor 1 . Sütunun güncelleştirilebilir olduğu belirlenemezse NULL döndürür. |
is_computed_column |
bit | Sütun hesaplanmış bir sütunsa, değilse 0 döndürer 1 . Eğer sütunun hesaplanmış bir sütun olup olmadığı belirlenemezse döner NULL . |
is_sparse_column_set |
bit | Sütun seyrek bir sütunsa, değilse 0 döndürer 1 . Eğer sütunun seyrek bir sütun kümesinin parçası olduğu belirlenemezse döner NULL . |
ordinal_in_order_by_list |
smallint | Bu sütunun konumu listede ORDER BY yer almaktadır. Sütun listede görünmezse ORDER BY veya liste ORDER BY benzersiz şekilde belirlenemiyorsa dönerNULL. |
order_by_list_length |
smallint | Listenin ORDER BY uzunluğu.
NULL Liste yoksa ORDER BY veya liste ORDER BY benzersiz olarak belirlenemiyorsa geri döner. Bu değer, sp_describe_first_result_settarafından döndürülen tüm satırlar için aynıdır. |
order_by_is_descending |
smallint |
ordinal_in_order_by_list
NULLdeğilse, order_by_is_descending sütunu bu sütun için ORDER BY yan tümcesinin yönünü bildirir. Aksi takdirde NULLbildirir. |
error_number |
int | Fonksiyonun döndürüp getirdiği hata sayısını içerir. Hata olmadıysa, sütun NULL. |
error_severity |
int | Fonksiyonun geri getiren şiddetini içerir. Hata olmadıysa, sütun NULL. |
error_state |
int | Fonksiyonun geri dönen durum mesajını içerir. Hata olmadıysa, sütun NULL. |
error_message |
nvarchar(4096) | Fonksiyonun geri gönderdiği mesajı içerir. Hata olmadıysa, sütun NULL. |
error_type |
int | Geri dönen hatayı temsil eden bir tam sayı içerir.
error_type_descile eşler. 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.
error_typeile eşler. Listeye Açıklamalar altındaki bakınız. |
Açıklamalar
Bu fonksiyon, aynı algoritmayı kullanır.sp_describe_first_result_set Daha fazla bilgi için bkz. sp_describe_first_result_set.
Aşağıdaki tablo hata türlerini ve açıklamalarını listeler.
error_type |
error_type |
Description |
|---|---|---|
1 |
MISC |
Başka şekilde açıklanmayan tüm hatalar. |
2 |
SYNTAX |
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ç, dinamik SQL nedeniyle belirlenemedi; çünkü bu potansiyel olarak ilk sonucu geri getirebilirdi. |
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ç belirlenemezdi çü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 |
RECURSION |
Sonuç belirlenemedi çünkü toplu bir özyinelemeli ifade içeriyordu. |
10 |
TEMPORARY_TABLE |
Sonuç belirlenemedi çünkü parti geçici bir tablo içeriyor ve desteklenmiyor sp_describe_first_result_set . |
11 |
UNSUPPORTED_STATEMENT |
Sonuç belirlenemedi çünkü toplu bölüm desteklenmeyen bir ifade sp_describe_first_result_set içeriyor (örneğin, FETCH, REVERT, vb.). |
12 |
OBJECT_TYPE_NOT_SUPPORTED |
@object_id Fonksiyona iletilen işlem desteklenmez (yani, saklanan bir prosedür değildir). |
13 |
OBJECT_DOES_NOT_EXIST |
@object_id Fonksiyona verilen mesaj sistem kataloğunda bulunmaz. |
Permissions
@tsql argümanını çalıştırmak için izin gerektirir.
Örnekler
Bu makaledeki kod örnekleri, AdventureWorks2025 giriş sayfasından indirebileceğiniz AdventureWorksDW2025 veya örnek veritabanını kullanır.
sp_describe_first_result_set makaledeki örnekleri uyarlayarak sys.dm_exec_describe_first_result_set.
A. Tek bir Transact-SQL ifadesi hakkında bilgi döndürme
Aşağıdaki kod, Transact-SQL ifadesinin sonuçları hakkında bilgi sağlar.
USE @AdventureWorks2025;
SELECT *
FROM sys.dm_exec_describe_first_result_set (
N'SELECT object_id, name, type_desc FROM sys.indexes', null, 0
);
B. Bir prosedür hakkında bilgi geri gönderin
Aşağıdaki örnek, iki sonuç kümesi döndüren bir kayıtlı prosedür oluşturur pr_TestProc . 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 @AdventureWorks2025;
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ürün
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 AdventureWorks2025;
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;