クエリを実行してから、SQL Server 管理スタジオや sqlcmd などを使用して、受信した各列のデータ型とサイズを単純に表示する方法はありますか。
サーバーとクライアントの間でデータの送信が行われるには、この情報が存在する必要があるようです。表示していただけると大変助かります。
ちょっとした背景: 私が質問する理由は、50 行から 5000 行以上のコードを含む無数のレガシー ストアド プロシージャとやり取りする必要があるからです。一時テーブルに出入りする不可解な論理フロー、他のプロシージャ、文字列連結された eval ステートメントなどを試す必要はありません。私は実装についての知識を維持したくありません。単に、それらが機能するときに何を期待するかです。残念ながら、ロジック フローに従うことが、たとえば、管理スタジオ スタジオや .net のネイティブ型からデータ文字列表現の実際の型を推測しようとせずに、正確に何が返されているかを把握する唯一の方法のようです。
明確にするために:テーブルのタイプやそのような静的なものを伝える方法について尋ねているのではありません。sp_help のようなものは役に立たないと確信しています。SQL サーバーの型 (つまり、varchar(25)、int...) が与えられたものであるかどうかを確認する方法を尋ねています。さらに、sprocs の実装を変更することはできないため、ソリューションでそれを考慮してください。どこかで見逃したコマンドがあることを本当に望んでいます。すべてに感謝します。
更新 私が本当に求めているのは、結果セットが一時テーブルを使用したクエリから発生した場合に、結果セットのスキーマを取得する方法だと思います。これが不可能であることは理解していますが、データが送信されているため、その結論にはあまり意味がありません。問題を引き起こすストアド プロシージャの例を次に示します。
CREATE PROCEDURE [dbo].[IReturnATempTable]
AS
Create table #TempTable
(
MyMysteryColumn char(50)
)
INSERT #TempTable (
MyMysteryColumn
) VALUES (
'Do you know me?' )
select TOP 50 * FROM #TempTable