【问题标题】:Query with temp table can't execute without SET FMTONLY OFF如果没有 SET FMTONLY OFF,则无法执行带有临时表的查询
【发布时间】:2017-08-11 12:35:15
【问题描述】:

SQL 默认设置 FMTOnly 关闭,我发现快速报告不尊重默认设置,所以我在我的程序中手动将其关闭,现在我想了解 为什么当 FMTOnly 为 o 时,带有临时表的存储过程不起作用。 有人可以解释一下吗?谢谢。

消息 208,级别 16,状态 0,过程 SP_Fast_Obter_Relatorio, 第 54 行无效的对象名称“#Temp”。

Query and result when FMTOnly is

Query and result when FMTOnly is OFF

【问题讨论】:

  • 因为FMTONLY ON 不执行语句,所以任何依赖(不存在的)临时表的语句都将无法解析。如果您必须支持使用 FMTONLY ON 来发现元数据的客户端工具(您又偷偷将其关闭),则可以使用 workarounds
  • 这些解决方法帮助了我,非常感谢。

标签: sql sql-server fastreport


【解决方案1】:

根据手册:https://docs.microsoft.com/en-us/sql/t-sql/statements/set-fmtonly-transact-sql

FMTONLY ON 只向客户端返回元数据。不是结果行或临时信息。

仅将元数据返回给客户端。可用于测试响应的格式,而无需实际运行查询。

设置使语句只返回列信息;不返回任何数据行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-13
    • 2012-10-16
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    • 2013-07-22
    • 1970-01-01
    相关资源
    最近更新 更多