gpt4 book ai didi

sql-server - SQL Server SET FMTONLY 已弃用。你如何获得多个结果集的结构?

转载 作者:行者123 更新时间:2023-12-04 02:23:28 24 4
gpt4 key购买 nike

我知道在 SQL Server 2012 之后 SET FMTONLY 将被弃用。我开发了一个复杂的代码生成系统,可以分析存储过程的结果并为存储库、数据契约(Contract)和业务库生成 C# 代码。我正在利用 SET FMTONLY 来分析存储过程的结果集,以了解存储过程正在生成的数据契约(Contract)。该契约(Contract)生成到接口(interface)及其实现中。我能够采用返回多个记录集的存储过程并将数据作为数据协定返回给客户端。

我找不到 SET FMTONLY 的替代品来分析存储过程的所有结果集。有没有人知道我如何为存储过程的每个结果集检索列、数据类型等?

感谢您的帮助。

最佳答案

SET FMTONLY ON 的缺陷在于它将所有 SELECT 语句视为无条件的。替换项 sp_describe_first_result_set 和 sp_describe_first_result_set_for_object 仅返回第一个结果集的元数据,因此在您的情况下不起作用。如果多个结果具有不兼容的元数据,这些过程也会引发错误。

我建议您通过对新构建和部署的数据库实际执行过程来检索 C# 代码中的元数据,使用 SqlDataReader 方法检索元数据。此方法还可以很好地处理动态 SQL。这种方法存在问题的唯一情况是数据协定是否根据传递的值而变化,无论如何这是一个设计问题。

关于sql-server - SQL Server SET FMTONLY 已弃用。你如何获得多个结果集的结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25374663/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com