在查找字段列表和表名后,我有一个动态构建的查询。我在存储过程中执行此动态查询。当两个proc参数为零时,查询是在没有where子句的情况下构建的,并且在没有时使用where子句构建的。
当我执行proc时 设置FMTONLY ON exec [cpExportRecordType_ListByExportAgentID] null,null 它不返回列信息。我刚刚替换了构建查询而没有where子句直接执行相同的查询,现在我得到列信息。我很想知道是什么导致了这个,任何人?
答案 0 :(得分:1)
也许它与传递的参数为NULL的事实有关, 检查您的查询是如何构建的,或者当您传递NULL时,它的行为方式与预期的不同。 当您致电时,您是否会返回预期结果: SET FMTONLY OFF exec [cpExportRecordType_ListByExportAgentID] null,null ?
其他可能性: 我知道您通过调用另一个查询来获取列名来动态构建查询。 也许通常会为您提供列名的查询不返回数据,只返回列信息(SET FMTONLY ON),因此您没有数据来构建动态查询。
答案 1 :(得分:0)
克里斯托夫:
因此您没有数据来构建动态查询。
使用null参数,我的动态查询是纯字符串文字,与数据无关。将其更改为静态查询可以解决问题。