在ColdFusion中打印SQL变量

在ColdFusion中打印SQL变量,sql,variables,coldfusion,Sql,Variables,Coldfusion,如何在Coldfusion中打印SQL变量 <cfquery...> ... @var1='whatever' </cfquery> <cfoutput> #@var1# </cfoutput> 像这样的语法总是因为@符号而抛出错误。你不能。将SQL字符串发送到DB,并期望返回一个记录集。这是向调用代码公开的唯一内容。它不会以任何方式解析或理解SQL语句。。。它只是将其发送到数据库。CF不知道其中有SQL变量 您需要做的是这样一件未

如何在Coldfusion中打印SQL变量

<cfquery...>
  ...
  @var1='whatever'
</cfquery>

<cfoutput>
  #@var1#
</cfoutput>
像这样的语法总是因为@符号而抛出错误。

你不能。将SQL字符串发送到DB,并期望返回一个记录集。这是向调用代码公开的唯一内容。它不会以任何方式解析或理解SQL语句。。。它只是将其发送到数据库。CF不知道其中有SQL变量

您需要做的是这样一件未经测试的事情:

<cfquery name="blah">
    ...
    @var1='whatever'

    SELECT @var AS someName
</cfquery>
<cfoutput>#blah.someName#</cfoutput>
这样做意味着返回的记录集(始终是SQL语句中的最后一个记录集)将是包含变量的记录集。

您不能这样做。将SQL字符串发送到DB,并期望返回一个记录集。这是向调用代码公开的唯一内容。它不会以任何方式解析或理解SQL语句。。。它只是将其发送到数据库。CF不知道其中有SQL变量

您需要做的是这样一件未经测试的事情:

<cfquery name="blah">
    ...
    @var1='whatever'

    SELECT @var AS someName
</cfquery>
<cfoutput>#blah.someName#</cfoutput>

这样做意味着返回的记录集(始终是SQL语句中的最后一个记录集)将是包含变量的记录集。

谢谢,但我要打印的变量是由循环中的几个值组成的。此外,我不能对这个变量进行选择,因为它是“未定义的”…耸耸肩。我想,你可能想看看@使用proc而不是内联SQL。底线:您不能访问传递给数据库的SQL字符串中的变量。只返回记录集。另一种可能是将值放入临时表,并在最后进行选择。一切都取决于你要返回什么。虽然您可以在cfquery中这样做,但我还是坚持使用存储过程。这些更适合于复杂的sql语句…返回的记录集始终是sql语句中的最后一个记录集。。。Adam-实际上,CF返回生成resultset的第一条语句。为什么不在select子句中包含该变量?谢谢,但是我要打印的变量是由循环中的几个值组成的。此外,我不能对这个变量进行选择,因为它是“未定义的”…耸耸肩。我想,你可能想看看@使用proc而不是内联SQL。底线:您不能访问传递给数据库的SQL字符串中的变量。只返回记录集。另一种可能是将值放入临时表,并在最后进行选择。一切都取决于你要返回什么。虽然您可以在cfquery中这样做,但我还是坚持使用存储过程。这些更适合于复杂的sql语句…返回的记录集始终是sql语句中的最后一个记录集。。。Adam-事实上,CF返回生成结果集的第一条语句。为什么不在select子句中包含该变量?storedproc可能有帮助。storedproc如何帮助?与cfquery不同,storedproc支持返回输出变量和多个结果集。storedproc可能有帮助。storedproc如何帮助?与cfquery不同,存储过程支持返回输出变量和多个结果集。