避免Access和SQL Server的空值冲突
2008-04-28 19:19
330 查看
在链接到一个SQL
Server数据库的Access项目(即.adp文件)中,你平时经常使用的Access函数通常是不支持的。但大多数时候,都可换用SQL Server支持的一个Transact-SQL(T-SQL)函数。一个特例是Access的空值(Null)函数Nz和IsNull;它们的功能相似,但并不是Access和T-SQL都能支持它们。本文要讨论在什么时候以及如何使用这两个函数来处理空值。
空值的重要性
空值是完全合法的数据库录入项,它们能提供的信息可能超过你的想象。空值指明一个值是未知的,但这并不是说该值不可接受或者不存在。空值表明一个值尚未确定,而且除非确定了合适的值,否则该值将保持未知状态,也就是为一个空值。
开发者的职责是判断空值可能在什么时候出现,并针对性地处理那些值。一个方案是在数据输入时拒绝空值,从而完全回避它们。但这样一来,你的数据将完全禁止空值,所以该方案的缺点在于,在你创建一条记录时,所有数据都必须是已知的。遗憾的是,对于大多数人来说,这个方案都不现实。以医院急诊室的数据库系统为例,是不是因为数据录入员不知道一个病人的中间名,就拒绝为其创建一条记录呢?所以,对空值进行妥善处理可提供更灵活的方案,因为即使数据录入员当时不知道所有数据,也能成功地创建记录。
认识到空值无法避免之后,你的职责就是正确处理它们,确保它们不会导致错误。正确处理空值有两方面的好处:
可与用户共享有意义的信息。
可提前捕捉空值,避免空值在后续的表达式中返回错误。
Access 中的空值
Access提供大量工具来操纵空值:
Is Null——在条件表达式和SQL
WHERE子句中使用Is Null。
IsNull——将IsNull用于Visual Basic for Applications(VBA)。
Nz——遇到空值时,用Nz返回除Null之外的其他值。
以上函数在本质上存在细微差异。Is Null和IsNull捕捉空值;而Nz函数处理空值。换言之,如果想返回的不是实际存储的空值,就使用Nz。例如,你可显示一个简单字符串(例如"N/A"),让用户知道数据对于当前记录来说“不可用”。另外,当空值在表达式中使用之前,你可以捕捉空值,因为空值经常会返回错误。
通过链接表或者Access项目来使用Access和SQL Server时,会产生一个问题,因为Access和SQL Server不是用相同的函数来判断空值。因此,你必须知道要使用什么函数,以及在什么时候使用。
相关文章推荐
- 避免Access和SQL Server的空值冲突
- 避免Access和SQL Server的空值冲突
- mysql忽略主键冲突、避免重复插入的几种方式
- SQL SERVER 与ACCESS、EXCEL的数据转换
- ODBC 错误: [SQL Server]ALTER TABLE 语句与 COLUMN FOREIGN KEY 约束 'id'冲突。
- Sql Server同步Access数据解决方案
- SQL SERVER与ACCESS,EXCEL的数据转换
- 如何把Access转成SQL Server的方法介绍(个人经验)!
- [数据库转换]ACCESS转SQL SERVER的数据库的几点经验
- SQL SERVER 与ACCESS、EXCEL的数据转换
- siteweaver数据库类型由SQL Server转换成Access的方法_优化版
- 终于解决SQL Server 2008 64位系统无法导入Access/Excel的问题 2012/08/01
- Excel 数据导入到 Access、Sql Server 中示例代码
- SQL语句实现SQL Server 2000及ACCESS复制表或表结构及内容到新的表
- ODBC 错误: [SQL Server]ALTER TABLE 语句与 COLUMN FOREIGN KEY 约束 'FK_借阅_读者' 冲突。_珠月渲林
- 在不改变SQL Server排序规则的情况下,避免Unicode数据乱码
- OC高效率52之用前缀避免命名空间冲突
- Excel 数据导入到 Access、Sql Server 中示例代码
- 如何避免JS变量命名冲突
- Excel 数据导入到 Access、Sql Server 中示例代码