gpt4 book ai didi

sql-server - 用于插入 SQL Server 的 VBA 空字符串

转载 作者:行者123 更新时间:2023-12-03 00:44:21 34 4
gpt4 key购买 nike

情况是这样的:有一个带有 Microsoft Access 前端的 SQL Server 数据库。 SQL Server 数据库中有一个表,其中有一个名为 PackID 的列,该列定义为 VARCHAR(6) NOT NULL(它必须为 NOT NULL,因为它是该表的复合主键的一部分)。 PackID 列中的空字符串是合法的。事实上,它们经常发生。当用户在该表的 UI 中输入数据并按 Tab 键浏览 PackID 字段时,会出现一条错误消息:“无法将 NULL 值插入列 'PackID';列不允许为空值。INSERT 失败。”

已经尝试过但不起作用的事情:

  1. 在 SQL Server 数据库中为此列添加默认约束,值为 '' - 显然,只有在 INSERT 语句中省略该列时才使用默认约束
  2. 将 Access 中 PackID 字段的默认值设置为“” - 它的行为就好像“”是 NULL
  3. 当用户移出 UI 中的行(失去焦点事件)时调用以下 VBA 代码

    If IsNull(PackID.Value) Then
    PackID.Value = ""
    End If

有谁知道如何在 Access 中强制使用空字符串,以便将其解释为 SQL Server 的空字符串而不是 NULL?

最佳答案

在 Access 此内容的 PackID 属性文本框中设置默认值

=" "

成功了。双引号之间的空格非常重要。留出空格会导致插入失败。在 SQL Server 中,LEN(PackID) 返回 0。例如:

SELECT LEN(''), LEN(' ');

两者都返回 0。看起来 SQL Server 将这两者都视为空字符串。

关于sql-server - 用于插入 SQL Server 的 VBA 空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29676370/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com