gpt4 book ai didi

sql-server - 如何修复此 Access 2003 错误?数据输入自动生成值

转载 作者:行者123 更新时间:2023-12-04 06:03:56 25 4
gpt4 key购买 nike

我在 MS Access 中遇到了一个奇怪的数据输入错误,我希望有人可以帮助阐明为什么会发生这种情况以及如何解决它。

我有一个在我们的 SQL Server 数据库中定义的数据表。定义如下,仅更改了字段名称。

CREATE TABLE [dbo].[MyTable](
[ID] [int] IDENTITY(1,1) NOT NULL,
[TextField1] [nvarchar](10) NOT NULL,
[TextField2] [nvarchar](50) NOT NULL,
[Integer1] [int] NOT NULL CONSTRAINT [DF_MyTable_Integer1] DEFAULT (0),
[Integer2] [int] NOT NULL,
[LargerTextField] [nvarchar](300) NULL
) ON [PRIMARY]

从这张表的定义可以看出,它并没有什么特别之处。我遇到的问题是通过 ODBC 链接到该表的 MS Access 2003 数据库中的链接数据表。

在 SQL Server 中定义和创建数据表后,我打开了我的工作 Access 数据库并链接到新表。我需要手动创建属于该表的记录。然而,当我开始添加数据行时,我注意到当我从 LargerTextField到一个新行, LargerTextField被默认为' 2 ',即使我没有输入任何内容,也没有在字段上定义默认值?!

最初,我需要这个字段是 Null .稍后我会回来并使用更新例程填充数据。但是为什么 MS Access 会在我的字段中默认一个值,即使表的架构显然没有定义一个?有没有人看到这个或有任何线索为什么会发生这种情况?

编辑

快速更正,只要我进入 LargerTextField ,该值默认为' 2 ',而不是当我退出时。细微的差别,但可能很重要。

作为测试,我还创建了一个新的 MS 数据库并链接了该表。我遇到了完全相同的问题。我认为这可能是 MS SQL Server 或 ODBC 的问题。

最佳答案

哇,问题解决了。这不是错误,但肯定不是我想要或期望的行为。

发生这种行为是因为我在字段 Integer1 中手动输入的数据和 Integer2 .我正在手动输入 0作为 Integer1 的值和一个 1进入 Integer2 .我从未见过 Access 自动假定我的数据输入,但看起来它正在识别按顺序输入的数据。

作为测试,我输入了一条记录 Integer1设置为 1Integer2设置为 2 .果然,当我进入 LargerTextField3的值是自动填充的。

我讨厌这是因为用户无知而导致的问题,但老实说,在我过去 10 多年使用 MS Access 的过程中,我什至不记得曾经看到过这种行为。我几乎宁愿删除这个问题来挽回面子,但由于它让我措手不及,而且我是一个有经验的用户,我不妨将它留在 StackExchange 文件中,供其他可能有相同经历的人使用。 :/

关于sql-server - 如何修复此 Access 2003 错误?数据输入自动生成值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8594539/

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