有没有办法运行查询,然后让 SQL Server 管理工作室或 sqlcmd 或其他东西简单地显示接收到的每列的数据类型和大小。
似乎必须存在此信息才能在服务器和客户端之间进行数据传输。如果能显示出来对我很有帮助。
一点背景知识: 我问的原因是因为我必须与无数的遗留存储过程交互,每个存储过程都有 50 到 5000 多行代码。我不想尝试遵循进出临时表的神秘逻辑流程,进入其他过程,进入字符串连接的 eval 语句等等。我希望对实现不了解,只希望它们工作时会发生什么。不幸的是,遵循逻辑流程似乎是找出确切返回的内容的唯一方法,而无需尝试推断数据字符串表示的实际类型 om management studio studio 或 .net 中的本机类型。
澄清一下:我不是在问如何分辨表格的类型或类似的静态内容。我很确定像 sp_help 这样的东西不会帮助我。我在问如何判断我所获得的 sql 服务器类型(即 varchar(25)、int...)是什么。此外,无法更改存储过程的实现,因此请在您的解决方案中考虑这一点。我真的希望有一个我在某个地方错过的命令。非常感谢大家。
更新 我想我真正要问的是,当结果集源自使用临时表的查询时,如何获取结果集的架构。我理解这是不可能的,但对这个结论没有多大意义,因为数据毕竟是在传输的。下面是一个会导致问题的存储过程的示例。
CREATE PROCEDURE [dbo].[IReturnATempTable]
AS
Create table #TempTable
(
MyMysteryColumn char(50)
)
INSERT #TempTable (
MyMysteryColumn
) VALUES (
'Do you know me?' )
select TOP 50 * FROM #TempTable