sp_describe_first_result_set (Transact-sql)
İlk olası sonuç kümesi için meta verileri döndürür Transact-SQLtoplu. Toplu işlem sonuç döndürürse ayarlamak boş bir sonuç döndürür. Eğer bir hata tutarsa Veritabanı Altyapısıstatik bir çözümlemesini yaparak çalıştırılacak ilk sorgu için meta verileri belirleyemiyor. Dinamik yönetimi görünümü sys.dm_exec_describe_first_result_set (Transact-sql)aynı bilgileri verir.
Transact-SQL Sözdizim Kuralları
Sözdizimi
sp_describe_first_result_set [ @tsql = ] N'Transact-SQL_batch'
[ , [ @params = ] N'parameters' ]
[ , [ @browse_information_mode = ] <tinyint> ] ]
Bağımsız değişkenler
@tsql = 'Transact-SQL_batch'
Bir veya daha fazla Transact-SQLdeyimleri. Transact-SQL_batch may be nvarchar(n) or nvarchar(max).@params = n'parameters'
@ params sağlar bir bildiri dize parametreleri için Transact-SQLsp_executesql için benzer toplu iş. Parametreleri olabilir nvarchar(n)ya nvarchar(max).İçinde katıştırılmış tüm parametreleri tanımları içeren bir dizedir Transact-SQL_batch. Unicode sabit ya da değişken Unicode dize olmalıdır. Her parametre tanımı, parametre adı ve veri türü oluşur. n ek parametre tanımları gösteren bir yer tutucudur. Deyiminde belirtilen her parametre @ params içinde tanımlanmalıdır. Eğer Transact-SQL@ params gerekli değil, bildirimi veya toplu deyiminde parametre içermiyor. Bu parametre için varsayılan değer null olur.
@ browse_information_mode = tinyint
Ek anahtar sütunları ve kaynak tablo bilgileri döndürülür, belirtir. Eğer sanki o sorgu için bir seçenek içerir kümesi 1, her sorgu için analiz edilir. Ek anahtar sütunları ve kaynak tablo bilgileri döndürülür.0 Olarak ayarlanırsa, hiçbir bilgi verilir Eğer.
Eğer sanki o sorgu için bir seçenek içerir kümesi 1, her sorgu için analiz edilir. Bu kaynak sütun bilgileri gibi temel tablo adlarını döndürür.
Sanki hazırlama veya imleç yürütme kullanılacak 2 olarak ayarlayın, her sorgu analiz edilir eğer. Bu görünüm adları kaynak sütun bilgilerini döndürür.
Dönüş Kodu Değerleri
sp_describe_first_result_set her zaman sıfır başarı durumu döndürür. Yordamı bir hata atar ve yordamı bir rpc adlandırılır, durumu nüfusun error_type sütununda açıklanan hata türüne göre iade sys.dm_exec_describe_first_result_set. Yordam dan çağrılırsa Transact-SQL, bile bir hata olduğunda dönüş değeri her zaman, sıfırdır.
Sonuç Kümeleri
Bu ortak meta sonucunda sonuçları meta verileri ile her sütun için bir satır kümesi döndürülür. Her satır, aşağıdaki bölümde açıklandığı biçimde Sütun nullability ve türünü açıklar. İlk ifade her denetim yolu yoksa, bir sonuç ile sıfır satır kümesi döndürülür.
Sütun adı |
Veri türü |
Açıklama |
---|---|---|
is_hidden |
bit NOT NULL |
Sütun bilgi amaçlı tarama için eklenen ekstra bir sütun olduğunu ve o aslında sonuç kümesinde görünmediğini gösterir. |
column_ordinal |
int NOT NULL |
Sonuç kümesinde sütun sıralı konumunu içerir. İlk sütunun konumunu 1 olarak belirlenir. |
name |
sysname NULL |
Bir ad belirlenebilir, sütun adını içerir. Aksi durumda, null içerecektir. |
IS_NULLABLE |
bit NOT NULL |
Sütun boş değerlere izin veriyorsa, o belirlenemiyorsa sütun Boşlara ver, sütun boş değerlere izin vermez, 0 ve 1 veriyorsa 1 değerini içerir. |
system_type_id |
int NOT NULL |
Belirtilen sütun veri türü system_type_id içeren sys.types. Düz-se bile system_type_name sütun null, döndürür clr türleri için bu sütunun değeri 240 döndürecektir. |
system_type_name |
nvarchar(256) NULL |
Sütun veri türü için belirtilen bağımsız değişken (örneğin, uzunluk, duyarlık, ölçek) ve adı içerir. Veri türü kullanıcı tanımlı ad türü ise, temeldeki sistem türü burada belirtilir. Eğer kullanıcı tanımlı bir clr türü, bu sütunda null döndürdü. |
max_length |
smallint NOT NULL |
Sütun en fazla uzunluğu (bayt cinsinden). -1 = Column data type is varchar(max), nvarchar(max), varbinary(max), or xml. İçin textsütunlar, max_lengthdeğeri 16 veya değeri ayarlanmış olacak sp_tableoption 'text in row'. |
duyarlık |
tinyint NOT NULL |
Sayısal tabanlı varsa sütun duyarlığını. Aksi takdirde 0 döndürür. |
ölçek |
tinyint NOT NULL |
Sayısal tabanlı varsa sütunun ölçek. Aksi takdirde 0 döndürür. |
collation_name |
sysname NULL |
Eğer karakter tabanlı sütun harmanlama adı. Aksi takdirde null döndürür. |
user_type_id |
int NULL |
clr türleri için takma, user_type_id sys.types belirtilen sütun veri türü bulunmaktadır. Aksi takdirde null olur. |
user_type_database |
sysname NULL |
clr ve türleri için diğer ad türü tanımlandığı veritabanı adını içerir. Aksi takdirde null olur. |
user_type_schema |
sysname NULL |
clr ve türleri için diğer ad türü tanımlandığı şemasının adını içerir. Aksi takdirde null olur. |
user_type_name |
sysname NULL |
clr ve türleri için diğer ad türünün adını içerir. Aksi takdirde null olur. |
assembly_qualified_type_name |
nvarchar(4000) |
clr türleri için montaj ve türünü tanımlayan sınıf ismini döndürür. Aksi takdirde null olur. |
xml_collection_id |
int NULL |
Belirtilen sütun veri türü xml_collection_id içeren sys.columns. Döndürülen türü xml Şeması derlemesi ile ilişkili değilse bu sütun null döndürür. |
xml_collection_database |
sysname NULL |
Bu türüyle ilişkili xml şema koleksiyonu tanımlandığı veritabanı içerir. Döndürülen türü xml Şeması derlemesi ile ilişkili değilse bu sütun null döndürür. |
xml_collection_schema |
sysname NULL |
Bu türüyle ilişkili xml şema koleksiyonu içinde tanımlanan şema içerir. Döndürülen türü xml Şeması derlemesi ile ilişkili değilse bu sütun null döndürür. |
xml_collection_name |
sysname NULL |
Bu türüyle ilişkili xml şema koleksiyonu adı bulunur. Döndürülen türü xml Şeması derlemesi ile ilişkili değilse bu sütun null döndürür. |
is_xml_document |
bit NOT NULL |
1 Döndürülen veri türü xml değil ve o türü (bir kök düğüm dahil) tam bir xml belgesi, bir xml parçası olarak karşı olduğu garanti verir). Aksi takdirde 0 döndürür. |
is_case_sensitive |
bit NOT NULL |
Sütun büyük küçük harf duyarlı dize türü ve 0 ise değilse 1 döndürür. |
is_fixed_length_clr_type |
bit NOT NULL |
Yoksa sütunun sabit uzunlukta clr türü ve 0 1 döndürür. |
Source_Server |
sysname |
Bu sonuç sütunu (uzak bir sunucudan kaynaklanıyorsa) döndürülen kaynak sunucu adı. Görünen adı verilen sys.servers. Döndürür null sütun yerel sunucuda kaynaklanıyorsa ya da onu bulamazsa, hangi sunucunun o kaynaklanan belirledi. Tarama bilgilerini istenirse sadece doldurulur. |
source_database |
sysname |
Bu sonuç sütunu tarafından döndürülen kaynak veritabanının adı. Veritabanı belirlenemiyorsa null döndürüyor. Tarama bilgilerini istenirse sadece doldurulur. |
source_schema |
sysname |
Bu sonuç sütunu tarafından döndürülen kaynak şema adı. Şema belirlenemiyorsa null döndürüyor. Tarama bilgilerini istenirse sadece doldurulur. |
source_table |
sysname |
Bu sonuç sütunu tarafından döndürülen kaynak tablo adı. Tablo belirlenemiyorsa null döndürüyor. Tarama bilgilerini istenirse sadece doldurulur. |
source_column |
sysname |
Sütunu tarafından döndürülen kaynak sütun adı. Sütun belirlenemiyorsa null döndürüyor. Tarama bilgilerini istenirse sadece doldurulur. |
is_identity_column |
bit NULL |
Sütunu kimlik sütunu ve 0 değilse 1 döndürür. Sütun kimlik sütunu olup belirlenemez, null döndürüyor. |
is_part_of_unique_key |
bit NULL |
Sütun (ve birincil benzersiz kısıtlama dahil) benzersiz bir dizin ve 0 bir parçası ise eğer 1 döndürür. Sütunun benzersiz bir dizin parçası olduğu belirlenemiyor, null döndürüyor. Tarama bilgilerini istenirse sadece doldurulur. |
is_updateable |
bit NULL |
Sütun güncelleştirilebilir ise 1 ve 0 verir DEĞIL. Sütun güncelleştirilebilir belirlenemez, null döndürüyor. |
is_computed_column |
bit NULL |
Sütun hesaplanan bir sütun ve 0 değilse 1 döndürür. Sütun hesaplanan bir sütun olduğunu belirlenemez, null döndürüyor. |
is_sparse_column_set |
bit NULL |
Sütun seyrek sütun ve 0 değilse 1 döndürür. Sütun seyrek sütun kümesi bir parçası olduğunu belirlenemez, null döndürüyor. |
ordinal_in_order_by_list |
smallint NULL |
order by listesinde bu sütunun konumunu. Sütunu order by listesinde görünmüyorsa veya order by listesinde benzersiz olarak belirlenemiyorsa döndürür null. |
order_by_list_length |
smallint NULL |
order by listesinde uzunluğu. order by listesinde ise veya order by listesinde benzersiz olarak belirlenemiyorsa döndürür null. Not Bu değer tarafından döndürülen tüm satırlar için aynı olacaktır sp_describe_first_result_set. |
order_by_is_descending |
smallint NULL |
Ordinal_in_order_by_list null değilse order_by_is_descending sütun raporları için bu sütunu order by yan tümcesi yönünde. Aksi takdirde null bildirir. |
tds_type_id |
int NOT NUL |
Dahili kullanım için. |
tds_length |
int NOT NUL |
Dahili kullanım için. |
tds_collation_id |
int NUL |
Dahili kullanım için. |
tds_collation_sort_id |
tinyint NUL |
Dahili kullanım için. |
Açıklamalar
sp_describe_first_result_set garanti prosedürü (kuramsal) ilk sonuç kümesi meta verileri döndürürse sonra toplu iş toplu a ve bu toplu iş (a) daha sonra ise idam olacak ya da (1) en iyi duruma getirme zaman hata yükseltir, (2) çalışma zamanı hata yükseltir, (3) sonuç kümesi veya (4) verir bir ilk sonuç kümesi tarafından tanımlanan aynı meta verileri ile sp_describe_first_result_set.
Adı, nullability ve veri türü farklı olabilir. Eğer sp_describe_first_result_set toplu iş yürütme yok-sonuç kümeleri döndürür olduğunu garanti bir boş sonuç kümesi döndürür.
Orada bu garanti varsaymaktadır sunucusunda hiçbir ilgili şema değişiklikleri. İlgili şema değişiklikleri sunucuda değil geçici bir tablo oluşturmak eklemek veya Tablo değişkenleri arasındaki toplu a, sp_describe_first_result_set olarak adlandırılır ve toplu b. tarafından yapılan şema değişiklikleri içeren yürütme sırasında döndürülen sonuç kümesinden saati
sp_describe_first_result_set aşağıdaki durumların hiçbirinde, bir hata döndürür.
Giriş @ tsql geçerli değilse, Transact-SQLtoplu. Geçerlilik belirlenen ayrıştırma ve analiz Transact-SQLtoplu. Sorgu en iyi duruma getirme veya yürütme sırasında toplu işi tarafından neden hataları belirlerken dikkate alınmaz mı Transact-SQLtoplu geçerli.
@ Params null olmayan bir dize içeriyorsa, bu bildirimi sözdizimi kurallarına göre geçerli dize parametreleri için değil veya bir dize içeriyorsa, birden çok kez herhangi bir parametre bildirir.
Eğer giriş Transact-SQLtoplu @ params içinde bildirilmiş bir parametre olarak aynı adlı bir yerel değişken ilan etti.
Eğer geçici bir tablo deyimi kullanır.
Sorguyu sonra sorgulanan kalıcı tablo oluşturulmasını içerir.
Tüm diğer denetimleri başarılı, tüm olası denetim akış yolları giriş toplu iş içinde kabul edilir. Bu alır içine hesap tüm denetim akış (goto, IF/else, süre, ve Transact-SQLdeneyin ve catch bloğu) yanı sıra tüm yordamlar, dinamik Transact-SQLtoplu işlemleri veya Tetikleyiciler giriş toplu işleminden bir exec deyimi, ateş ddl Tetikleyiciler ateşlenmesine ddl deyimi veya hedef tablo veya geçişli eylem yabancı anahtar kısıtlaması nedeniyle değiştirilen Tablo Tetikleyicileri harekete neden dml deyimi tarafından çağrılan. Birçok olası denetim yolları durumunda, bir algoritma bir noktada durur.
Her denetim akış yolu için (eğer varsa) ilk ifade, bir sonuç kümesi tarafından belirlenir döndürür sp_describe_first_result_set.
Birden çok olası ilk deyimi bir toplu bulunduğunda, sonuçlarının sütunları, sütun adı, nullability ve veri türü sayısı farklı olabilir. Bu farklılıkları nasıl işleneceğini burada ayrıntılı olarak açıklanmıştır:
Sütun sayısı farklıysa, bir hata atılır ve sonuç döndürülür.
Sütun adı farklıysa, döndürülen sütun adı null olarak ayarlanır.
O nullability farklıdır, döndürülen nullability boş değerlere izin verir.
Veri türü farklıysa, bir hata atılır ve aşağıdaki durumlar haricinde hiçbir sonuç döndürülür:
varchar(a)için varchar(a')burada bir ' >bir.
varchar(a) - varchar(max)
nvarchar(a)için nvarchar(a')burada bir ' >bir.
nvarchar(a) - nvarchar(max)
varbinary(a)için varbinary(a')burada bir ' >bir.
varbinary(a) - varbinary(max)
İzinler
@ Tsql bağımsız yürütme izni gerektirir.
Örnekler
Tipik örnekler
A.Basit bir örnek
Aşağıdaki örnek, sonuç kümesini tek bir sorgudan döndürülen açıklar.
sp_describe_first_result_set @tsql = N'SELECT object_id, name, type_desc FROM sys.indexes'
sp_describe_first_result_set @tsql = N'SELECT object_id, name, type_desc FROM sys.indexes'
Aşağıdaki örnek, sonuç kümesini bir parametre içeren tek bir sorgudan döndürülen gösterir.
sp_describe_first_result_set @tsql =
N'SELECT object_id, name, type_desc
FROM sys.indexes
WHERE object_id = @id1'
, @params = N'@id1 int'
sp_describe_first_result_set @tsql =
N'SELECT object_id, name, type_desc
FROM sys.indexes
WHERE object_id = @id1'
, @params = N'@id1 int'
B.Gözatma modu örnekleri
Aşağıdaki üç örnekte farklı Gözat bilgi modları arasındaki en önemli fark göstermektedir. Sorgu sonuçlarında yalnızca ilgili sütunları dahil edilmiş.
Hiçbir bilgi gösteren 0 kullanarak örnek döndürülür.
CREATE TABLE dbo.t (a int PRIMARY KEY, b1 int);
GO
CREATE VIEW dbo.v AS SELECT b1 AS b2 FROM dbo.t;
GO
EXEC sp_describe_first_result_set N'SELECT b2 AS b3 FROM dbo.v', null, 0;
CREATE TABLE dbo.t (a int PRIMARY KEY, b1 int);
GO
CREATE VIEW dbo.v AS SELECT b1 AS b2 FROM dbo.t;
GO
EXEC sp_describe_first_result_set N'SELECT b2 AS b3 FROM dbo.v', null, 0;
Sonuç kümesi buradadır.
is_hidden |
column_ordinal |
name |
source_schema |
source_table |
source_column |
is_part_of_unique_key |
---|---|---|---|---|---|---|
0 |
1 |
B3 |
NULL |
NULL |
NULL |
NULL |
Sanki o sorgu için bir seçenek içerir örneği 1 gösteren bilgi verir.
EXEC sp_describe_first_result_set N'SELECT b2 AS b3 FROM v', null, 1
EXEC sp_describe_first_result_set N'SELECT b2 AS b3 FROM v', null, 1
Sonuç kümesi buradadır.
is_hidden |
column_ordinal |
name |
source_schema |
source_table |
source_column |
is_part_of_unique_key |
---|---|---|---|---|---|---|
0 |
1 |
B3 |
dbo |
t |
B1 |
0 |
1 |
2 |
bir |
dbo |
t |
bir |
1 |
Bir imleç hazırlıyoruz sanki analiz gösteren 2 kullanan örnek.
EXEC sp_describe_first_result_set N'SELECT b2 AS b3 FROM v', null, 2
EXEC sp_describe_first_result_set N'SELECT b2 AS b3 FROM v', null, 2
Sonuç kümesi buradadır.
is_hidden |
column_ordinal |
name |
source_schema |
source_table |
source_column |
is_part_of_unique_key |
---|---|---|---|---|---|---|
0 |
1 |
B3 |
dbo |
v |
B2 |
0 |
1 |
2 |
ROWSTAT |
NULL |
NULL |
NULL |
0 |
Problem örnekleri
Aşağıdaki örnekler, tüm örnekleri için iki tablo kullanın. Örnek tabloları oluşturmak için aşağıdaki deyimleri yürütmek.
CREATE TABLE dbo.t1 (a int NULL, b varchar(10) NULL, c nvarchar(10) NULL);
CREATE TABLE dbo.t2 (a smallint NOT NULL, d varchar(20) NOT NULL, e int NOT NULL);
CREATE TABLE dbo.t1 (a int NULL, b varchar(10) NULL, c nvarchar(10) NULL);
CREATE TABLE dbo.t2 (a smallint NOT NULL, d varchar(20) NOT NULL, e int NOT NULL);
Hata sütun sayısı farklı olduğundan
Bu örnekte ilk sonuç kümeleri farklı olası sütun sayısı.
sp_describe_first_result_set @tsql =
N'
IF(1=1)
SELECT a FROM t1;
ELSE
SELECT a, b FROM t1;
SELECT * FROM t; -- Ignored, not a possible first result set.'
sp_describe_first_result_set @tsql =
N'
IF(1=1)
SELECT a FROM t1;
ELSE
SELECT a, b FROM t1;
SELECT * FROM t; -- Ignored, not a possible first result set.'
Hata veri türleri farklı olduğundan
Sütun türleri farklı farklı mümkün ilk sonuç kümeleri.
sp_describe_first_result_set @tsql =
N'
IF(1=1)
SELECT a FROM t1;
ELSE
SELECT a FROM t2;
sp_describe_first_result_set @tsql =
N'
IF(1=1)
SELECT a FROM t1;
ELSE
SELECT a FROM t2;
Sonuç: hata türleri eşleşmeyebilir ( int vs. smallint).
Sütun adı belirlenemedi
İlk sonuç kümeleri tarafından aynı değişken uzunlukta türü, nullability ve sütun adlarının uzunluğu farklı olası sütunlar:
sp_describe_first_result_set @tsql =
N'
IF(1=1)
SELECT b FROM t1;
ELSE
SELECT d FROM t2; '
sp_describe_first_result_set @tsql =
N'
IF(1=1)
SELECT b FROM t1;
ELSE
SELECT d FROM t2; '
Sonuç: <bilinmeyen sütun adı> varchar(20) NULL
Rumuz ile aynı olmak zorunda sütun adı
Önceki ile aynı ancak sütun sütun rumuz ile aynı ada sahip.
sp_describe_first_result_set @tsql =
N'
IF(1=1)
SELECT b FROM t1;
ELSE
SELECT d AS b FROM t2;'
sp_describe_first_result_set @tsql =
N'
IF(1=1)
SELECT b FROM t1;
ELSE
SELECT d AS b FROM t2;'
Sonuç: bvarchar(20) NULL
Hata nedeniyle sütun türleri eşleşmeyebilir
Sütun türleri farklı farklı mümkün ilk sonuç kümeleri.
sp_describe_first_result_set @tsql =
N'
IF(1=1)
SELECT b FROM t1;
ELSE
SELECT c FROM t1;'
sp_describe_first_result_set @tsql =
N'
IF(1=1)
SELECT b FROM t1;
ELSE
SELECT c FROM t1;'
Sonuç: hata türleri eşleşmeyebilir (varchar(10) vs. nvarchar(10)).
Sonuç kümesi hata döndürebilir
İlk sonuç kümesi hata ya da sonuç kümesidir.
sp_describe_first_result_set @tsql =
N'
IF(1=1)
RAISERROR(''Some Error'', 16, 1);
ELSE
SELECT a FROM t1;
SELECT e FROM t2; -- Ignored, not a possible first result set.;'
sp_describe_first_result_set @tsql =
N'
IF(1=1)
RAISERROR(''Some Error'', 16, 1);
ELSE
SELECT a FROM t1;
SELECT e FROM t2; -- Ignored, not a possible first result set.;'
Sonuç: birint NULL
Bazı kod yolları hiçbir sonuç
İlk sonuç kümesi null veya bir sonuç kümesi olur.
sp_describe_first_result_set @tsql =
N'
IF(1=1)
RETURN;
SELECT a FROM t1;'
sp_describe_first_result_set @tsql =
N'
IF(1=1)
RETURN;
SELECT a FROM t1;'
Sonuç: birint NULL
Dinamik sql sonuç
İlk sonuç değişmez bir dize olduğundan keşfedilebilir dinamik sql kümesidir.
sp_describe_first_result_set @tsql =
N'EXEC(N''SELECT a FROM t1'');'
sp_describe_first_result_set @tsql =
N'EXEC(N''SELECT a FROM t1'');'
Sonuç: birINT NULL
Dinamik sql sonuç hatası
İlk sonuç kümesi dinamik sql nedeniyle tanımsızdır.
sp_describe_first_result_set @tsql =
N'
DECLARE @SQL NVARCHAR(max);
SET @SQL = N''SELECT a FROM t1 WHERE 1 = 1 '';
IF(1=1)
SET @SQL += N'' AND e > 10 '';
EXEC(@SQL); '
sp_describe_first_result_set @tsql =
N'
DECLARE @SQL NVARCHAR(max);
SET @SQL = N''SELECT a FROM t1 WHERE 1 = 1 '';
IF(1=1)
SET @SQL += N'' AND e > 10 '';
EXEC(@SQL); '
Sonuç: hata. Sonuç nedeniyle dinamik sql bulunabilir değildir.
Kullanıcı tarafından belirtilen sonuç
İlk sonuç kümesi, kullanıcı tarafından el ile belirtilir.
sp_describe_first_result_set @tsql =
N'
DECLARE @SQL NVARCHAR(max);
SET @SQL = N''SELECT a FROM t1 WHERE 1 = 1 '';
IF(1=1)
SET @SQL += N'' AND e > 10 '';
EXEC(@SQL)
WITH RESULT SETS(
(Column1 BIGINT NOT NULL)
); '
sp_describe_first_result_set @tsql =
N'
DECLARE @SQL NVARCHAR(max);
SET @SQL = N''SELECT a FROM t1 WHERE 1 = 1 '';
IF(1=1)
SET @SQL += N'' AND e > 10 '';
EXEC(@SQL)
WITH RESULT SETS(
(Column1 BIGINT NOT NULL)
); '
Sonuç: Sütun1bigint NOT NULL
Belirsiz sonuç kümesi tarafından neden hata
Bu örnek Kullanıcı1 adlı başka bir kullanıcı varsayılan şema s1 sütunlarla t1 adında bir tablo olduğunu varsayar (bir int NOT NULL).
sp_describe_first_result_set @tsql =
N'
IF(@p > 0)
EXECUTE AS USER = ''user1'';
SELECT * FROM t1;'
, @params = N'@p int'
sp_describe_first_result_set @tsql =
N'
IF(@p > 0)
EXECUTE AS USER = ''user1'';
SELECT * FROM t1;'
, @params = N'@p int'
Sonuç: hata. t1dbo.t1 ya da s1.t1, her biri farklı sayıda sütun olabilir.
Hatta belirsiz sonuç kümesi ile neden
Aynı varsayımlar önceki örnek olarak kullanın.
sp_describe_first_result_set @tsql =
N'
IF(@p > 0)
EXECUTE AS USER = ''user1'';
SELECT a FROM t1;'
sp_describe_first_result_set @tsql =
N'
IF(@p > 0)
EXECUTE AS USER = ''user1'';
SELECT a FROM t1;'
Sonuç: bir int NULLhem dbo.t1.a hem de s1.t1.a türü olduğundan int ve farklı nullability.
Ayrıca bkz.
Başvuru
sp_describe_undeclared_parameters (Transact-sql)
sys.dm_exec_describe_first_result_set (Transact-sql)
sys.dm_exec_describe_first_result_set_for_object (Transact-sql)