Отображение типа данных и размера столбца из результатов запроса SQL Server во время выполнения

Есть ли способ выполнить запрос, а затем попросить студию управления SQL Server или sqlcmd или что-то просто отобразить тип данных и размер каждого столбца в том виде, в котором он был получен.

Похоже, эта информация должна присутствовать для передачи данных между сервером и клиентом. Было бы очень полезно для меня, если бы это могло быть отображено.

A little background: Причина, по которой я спрашиваю, заключается в том, что я должен взаимодействовать с бесчисленными устаревшими хранимыми процедурами с количеством строк от 50 до 5000+ в каждой. Я не хочу пытаться проследить поток загадочной логики в и из временных таблиц, в другие процедуры, в конкатенацию строки eval и так далее. Я не хочу ничего знать о реализации, просто что ожидать, когда они работают. К сожалению, следование логическому потоку, похоже, является единственным способом выяснить, что именно возвращается, не пытаясь определить, какие фактические типы представлений строк данных, например, из студии управления или из собственного типа в .net.

To clarify: Я не спрашиваю о том, как определить типы таблиц или что-то подобное. Я уверен, что что-то вроде sp_help мне не поможет. Я спрашиваю, как определить тип сервера sql (т.е. varchar (25), int ...) из того, что мне дали. Кроме того, изменение реализации sprocs невозможно, поэтому учтите это в своих решениях. Я действительно надеюсь, что есть команда, которую я где-то пропустил. Большое спасибо всем.

Update Я предполагаю, что я действительно спрашиваю, как получить схему набора результатов, когда набор результатов исходит из запроса с использованием временной таблицы. Я понимаю, что это невозможно, но я не вижу особого смысла в этом заключении, потому что данные передаются в конце концов. Вот пример хранимой процедуры, которая может вызвать проблемы.

<code>CREATE PROCEDURE [dbo].[IReturnATempTable]
AS

Create table #TempTable 
( 
    MyMysteryColumn char(50)
)

INSERT #TempTable (
    MyMysteryColumn
) VALUES ( 
    'Do you know me?' ) 


select TOP 50 * FROM #TempTable 
</code>

Ответы на вопрос(6)

Ваш ответ на вопрос