仅列信息返回FMTONLY设置为OFF

时间:2008-09-16 13:31:16

标签: sql-server

在查找字段列表和表名后,我有一个动态构建的查询。我在存储过程中执行此动态查询。当两个proc参数为零时,查询是在没有where子句的情况下构建的,并且在没有时使用where子句构建的。

当我执行proc时     设置FMTONLY ON     exec [cpExportRecordType_ListByExportAgentID] null,null 它不返回列信息。我刚刚替换了构建查询而没有where子句直接执行相同的查询,现在我得到列信息。我很想知道是什么导致了这个,任何人?

2 个答案:

答案 0 :(得分:1)

也许它与传递的参数为NULL的事实有关, 检查您的查询是如何构建的,或者当您传递NULL时,它的行为方式与预期的不同。 当您致电时,您是否会返回预期结果:     SET FMTONLY OFF exec [cpExportRecordType_ListByExportAgentID] null,null ?

其他可能性: 我知道您通过调用另一个查询来获取列名来动态构建查询。 也许通常会为您提供列名的查询不返回数据,只返回列信息(SET FMTONLY ON),因此您没有数据来构建动态查询。

答案 1 :(得分:0)

  

克里斯托夫:

     
    

因此您没有数据来构建动态查询。

  

使用null参数,我的动态查询是纯字符串文字,与数据无关。将其更改为静态查询可以解决问题。