解析:教你快速解决 更新数据的疑难问题

来源:岁月联盟 编辑:zhuzhu 时间:2007-10-26

注释:本文中的信息适用于 Microsoft Access 项目 (.adp)。

 

得到消息“验证约束时出错”。

 

可能的原因有:

 

◆约束表达式为空。

◆“约束表达式”属性的文本不符合 SQL Server 所能识别的约束语法。常见的原因有:

表达式无法解析为 TRUE 或 FALSE 值。

表达式拼错列名称,或引用了其他表中的列。

表达式拼错函数名称或数据库常量名称。

在继续定义表的其他属性之前,必须在“约束表达式”对话框内输入约束。有关约束表达式语法的详细信息,请参阅 SQL Server 文档。

 

我在默认数据类型方面遇到问题。

 

◆在“工具”菜单下“选项”命令的“表/查询”选项卡中所选的默认数据类型,可能并不受所有版本 Microsoft SQL Server 的支持。例如,数据类型 bigint 和 sql_variant 仅在 SQL Server 2000 中受支持。如果早期版本的 SQL server 不支持所选的数据类型,Access 就会将其替换为下表所示的类型。

SQL Server 2000 SQL Server 7.0 SQL Server 6.5

 

bigint int int nchar nchar varchar ntext ntext text nvarchar nvarchar varchar sql_variant varchar varchar uniqueidentifier uniqueidentifier varchar

 

注释:如果在连接 SQL Server 2000 数据库的情况下,将默认数据类型设为受支持的数据类型(例如 bigint),然后将 Access 项目连接改为早期版本的 SQL Server,系统就会要求更改默认数据类型。

 

◆您曾试图将已命名的默认值更改为默认约束。从已命名默认值改为默认约束将永久解除已命名默认值的绑定,这是 Microsoft SQL Server 所不允许的。

您曾试图为计算列设置默认值。计算列不能有默认值。

我看不到期望的全部记录。

 

◆您所设置的最大记录数限制可能对于 Access 项目而言太低。该限制的目的是为了改进用户在查看或浏览数据表或窗体数据,同时查询会返回大量记录时的性能。如果是从选择查询中检索数据,或者是从另一个 Access 项目导入数据,或者是运行追加查询或生成表查询以复制数据,都有可能将最大记录限制设为 0(表示无限制),以检索所有记录。

 

刷新间隔似乎在 Access 项目中无法正常使用。

 

刷新间隔并非专用于 OLE DB 数据源的数据。在 Access 数据库中,刷新间隔(指向“工具”菜单,单击“选项”命令,单击“高级”选项卡,然后选择“刷新间隔(秒)”选项)用于指定多用户环境中数据的自动更新频率(以秒计)。例如,如果键入 120,则数据每 2 分钟更新一次。该设置所用的基本技术是动态数据交换 (DDE)。不过,Access 项目是使用 OLE DB 连接 Microsoft SQL Server 数据库。若要在 Access 项目中手动刷新数据,请使用“记录”菜单上的“刷新”命令,或者重新查询记录以检索最新的数据。

 

列中的数据突然被截断。

 

您可能修改过列的数据类型或长度,导致长度过短无法满足当前数据的需要。例如,您将数据类型从 nchar(100) 改为 nchar(80)。

 

请将数据类型或长度改回以前值,然后从备份文件中还原数据。