DB:MSSQL 2008
CF版本:9
<cfquery name="rsData" datasource="#request.dsn#">
SELECT GETDATE() AS CurrentDateTime1
SELECT GETDATE() AS CurrentDateTime2
</cfquery>
<cfoutput query="rsData">
#rsData.CurrentDateTime1#
#rsData.CurrentDateTime2#
</cfoutput>
<cfdump var="#rsData#">
我希望能够输出#rsData.CurrentDateTime2#,因为这是写的,但是我收到了一个很难的错误:
Element CURRENTDATETIME2 is undefined in rsData
为什么有任何想法?是否需要启用CFAdmin设置?代码中还有其他区域可以正常工作,所以我有点困惑。任何关于在何处寻求解决此问题的建议都将受到赞赏。
**更新基于LEIGH&#39;答案让我回去看看我的TYPO ** 这只是我最终尝试做的一个肮脏的例子,可能不起作用。
declare @start DATETIME, @end DATETIME
set @start = (
select max(date) DTM
from TABLE)
SET @lowStart_Search = dateadd(year,-1,@highStart_Search)
SELECT COLUMN1, COLUMN2
WHERE column3 <= @start
AND column3 >= @end
答案 0 :(得分:1)
代码的其他区域可以正常使用
这似乎不太可能。其他查询必须有不同之处。
这不是关于多个SQL语句本身,而是这些语句生成多少个结果集。 CFQuery
只能返回单 resultset。上面的SQL生成多个结果集:
SELECT GETDATE() AS CurrentDateTime1
SELECT GETDATE() AS CurrentDateTime2
请注意,如果您在SSMS中运行它会产生两个结果网格,而不是一个?
第一个结果
CurrentDateTime1
------------------
October, 05 2015 16:36:31
(1 row affected)
第二个结果
CurrentDateTime2
------------------
October, 05 2015 16:36:31
(1 row affected)
CFQuery标记只返回第一个结果。其余的将被忽略。因此,为什么CurrentDateTime2
未定义。
如果需要,您当然可以修改SQL以返回两个值。例如,将它们作为单个结果集的两个单独的列返回。
SELECT GETDATE() AS CurrentDateTime1
, GETDATE() AS CurrentDateTime2
还有其他选择,取决于最终目标(从简化示例中不清楚)。但是,cfquery
只会返回一个结果。如果您确实需要多个结果集,则必须改为使用cfstoredproc
。