WEB开发网
开发学院数据库MSSQL Server 避免Access和SQL Server的空值冲突 阅读

避免Access和SQL Server的空值冲突

 2007-05-16 09:33:59 来源:WEB开发网   
核心提示: Nz在项目中无法工作有人以为Access项目也支持Nz函数,但实情并非如此,避免Access和SQL Server的空值冲突(4),记住,项目中的表是真正的SQL Server表,正确处理空值可防止数据库出现运行时错误和生成无效数据,不要回避空值,要证明这一点非常简单,只需使用Access
Nz在项目中无法工作

有人以为Access项目也支持Nz函数,但实情并非如此。记住,项目中的表是真正的SQL Server表。要证明这一点非常简单,只需使用Access配套提供的示范项目NorthwindCS.adp。以Employees表的一个简单视图为基础,并像前面在Microsoft数据库(.mdb)文件中那样使用Nz函数,如图E所示。试图运行该查询时,Access会返回一个错误。

图E

Access项目不支持Nz函数

在Access项目中使用Nz

在项目中不能使用Nz,而应换用Transact SQL的IsNull函数。该函数的作用与Nz相似,它的形式如下:

IsNull(expression, valueifnull)

两个参数都是必需的,IsNull结果值的类型由expression决定。如果valueifnull的列数据类型与expression的数据类型冲突,SQL Server会在你试图输入表达式时返回一个错误。例如,假如expression基于一个数值列,而valueifnull是一个字符串,两个参数就会产生冲突。由于SQL Server无法解决冲突,所以会拒绝表达式。

为了解决上例(图E)的问题,可将Nz替换成IsNull表达式,如图F所示:

IsNull(Region, 'N/A')

结果与图B相同(在WithOptional字段中)。

图F

在Access项目中用IsNull代替Nz

避免空值错误

Access和SQL Server用不同的函数来处理空值(分别是Nz和IsNull)。正确处理空值可防止数据库出现运行时错误和生成无效数据。不要回避空值,只需正确地处理它们。

上一页  1 2 3 4 

Tags:避免 Access SQL

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接