oracle set ansi_nulls off,SET ANSI_NULLS ON 到底起什么作用?

在 SQL Server 导出表的 SQL 语句时,会加上一句 SET ANSI_NULLS ON。

这句我们在实际使用过程中,似乎保留与否、删除与否,都没有什么影响,那 SET ANSI_NULLS ON 到底起什么作用呢?

结论:SET ANSI_NULLS ON 表示不要用 = null 来判断是否是 null。默认为 ON。declare @s nvarchar(20)

if @s = null

print '用 = 判断 null 成功'

else

print '用 = 判断 null 失败'

如上执行的是 else,也就是说默认不能用等号判断 null。我们看看 SET ANSI_NULLS ON 的情况:SET ANSI_NULLS ON

declare @s nvarchar(20)

if @s = null

print '用 = 判断 null 成功'

else

print '用 = 判断 null 失败'

也是执行的 else,说明默认就是 ON。那我们看看关闭的情况吧:SET ANSI_NULLS OFF

declare @s nvarchar(20)

if @s = null

print '用 = 判断 null 成功'

else

print '用 = 判断 null 失败'

这回是“成功”,说明:默认、ON 是不能用等号判断 null。

OFF 是可以用等号判断 null。

设置值影响当前会话,我们可以测试:

查询窗口 A 中无论怎么改变 ANSI_NULLS,都不影响查询窗口 B。

查询窗口 A 中改变 ANSI_NULLS 为非默认值,将其删除,再执行查询窗口 A 中其他代码,其设置仍然有效。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值