sql-server - 将日期字段设置为空

标签 sql-server sql-server-2005 t-sql vbscript asp-classic

我正在尝试将 MS SQL Server 2005 数据库中的日期字段设置为 null。

我在 asp 页面上使用 VBScript。

数据库中的列允许空值。但是,当我尝试添加记录而不将任何内容传递到日期字段,或者尝试将该字段设置回 Null 时,我收到此错误:

Provider error '80020005'

Type mismatch.

/add_client_notes.asp, line 142

第 142 行是:rs("client_notes_duedate") = client_notes_duedate

这是所有代码:

<% 
    clientnotes_id = request("clientnotes_id")
    client_notes_duedate = request("client_notes_duedate")
    if client_notes_duedate = "" then
        client_notes_duedate = Null
    end if

    openSQL("SELECT * FROM client_notes WHERE client_notes_id=" & clientnotes_id)
    rs("client_notes_duedate") = client_notes_duedate
    rs.update

%>

我尝试发送空值和 NULL 值,但都返回相同的错误。

当我发送日期值时,效果很好。

如何将 client_notes_duedate 设置回 NULL?

最佳答案

您能否将此代码重构为:

execSomeSqlStatement("UPDATE client_notes SET client_notes_duedate = NULL 
 WHERE client_notes_id=" & clientnotes_id)

也许可以进行更多重构以避免 SQL 注入(inject)漏洞?

关于sql-server - 将日期字段设置为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5943041/

相关文章:

c# - 如何在 C# 中使用 SMO 列出可用的 SQL Server 实例?

sql - 根据 2 个用户 ID 分组获取摘要报告

sql - 通过完整外连接查找多个字段的最小日期

c# - 带有可选文本限定符的批量插入

sql - 获取与传入员工属于完全相同位置列表的所有员工

sql-server-2005 - 对大量数据选择 Count(*)

sql-server - SQL Server 2005 使用表达式进行 Order BY

sql - 将 Excel 电子表格连接到 SQL 数据库

sql-server - 对于至少在台式电脑、笔记本电脑或打印机之一上拥有型号的每个制造商,确定其产品的最高价格。输出: maker;

sql-server - 柜台柱;将表中的行除以n行