使用 coldfusion 将数据附加到数据库列

Appending data to database column using coldfusion

出于某种原因,以下更新不会将我的注释添加到 Admin_Notes 字段。该字段为空,但一旦有数据,我想添加到当前数据而不是替换它。

<cfargument name="adminNotes" required="yes">
<cfargument name="form_ID" required="yes">
<cfargument name="quoteNumber" required="yes">

<cfquery name="completeRFQ" datasource="RC">
    UPDATE RFQ_Forms
    SET Status = 'Complete',
        Completion_Date = CURRENT_TIMESTAMP,
        Admin_Notes = Admin_Notes + <cfqueryparam value="#ARGUMENTS.adminNotes#">,
        Quote_Num = <cfqueryparam value="#ARGUMENTS.quoteNumber#">
  WHERE ID = <cfqueryparam value="#ARGUMENTS.form_ID#">
</cfquery>

这一列设置为nvarchar(MAX)

我的查询的其余部分正确完成,我验证传递的变量中有一个字符串。

我将查询包装在 cftry 中,但没有得到任何回复。

测试后我的问题有了更新

该栏实际上是空的,因为这是我第一次运行宁它。当我手动向列中添加文本然后 运行 查询时,文本的第二部分被添加到列中。

如果列为空且其中已有文本,我如何向该列添加数据?

The column is actually empty since this is the first time I am running it. When I add text to the column by hand and then run the query the second part of text is added to the column.

失败的原因是您试图将某些内容连接为 null。要解决此问题,请更新 table 并将所有空值设置为空字符串。然后更改该列,使其不为 null,默认值为空字符串。

与您的问题无关,您应该为您的 cfargument 和 cfqueryparam 标签指定数据类型。

您应该能够在您的列周围包装一个 isNull() 检查。这样,如果 Admin_Notes 为空,它会将其转换为空字符串并附加您的数据

<cfquery name="completeRFQ" datasource="RC">
UPDATE RFQ_Forms
SET Status = 'Complete',
    Completion_Date = CURRENT_TIMESTAMP,
    Admin_Notes = isNull(Admin_Notes,'') + <cfqueryparam value="#ARGUMENTS.adminNotes#">,
    Quote_Num = <cfqueryparam value="#ARGUMENTS.quoteNumber#">
WHERE ID = <cfqueryparam value="#ARGUMENTS.form_ID#">
</cfquery>