2008-09-16 50 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),所以你沒有數據來建立你的動態查詢。

相關問題