2008-09-16 86 views
1

查询字段列表和表名称后,我有一个动态构建的查询。我在存储过程中执行这个动态查询。当两个proc参数为零时,该查询不包含where子句,并且在没有时使用where子句构建。仅列信息将FMTONLY设置为OFF时返回

当我与 SET执行PROC FMTONLY ON EXEC [cpExportRecordType_ListByExportAgentID] NULL,NULL 它返回没有列信息。我刚刚替换了没有where子句的查询,直接执行相同的查询,现在我得到了列信息。我很想知道是什么原因造成的,任何人?

回答

0

克里斯托夫:

所以你不必数据来建立你的动态查询。

随着空参数我的动态查询是一个纯粹的字符串文字,独立的数据。将其更改为静态查询解决了问题。

1

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

其他可能性: 我知道您通过调用其他查询来获取列名称来动态构建您的查询。 也许通常会给你列名的查询返回没有数据,但只有列信息(SET FMTONLY ON),所以你没有数据来建立你的动态查询。