SQLSERVER各版本语法差异整理(持续更新...)

因为工作原因,有幸了解到微软SQLSERVER版本差异,主要从SQL6.5至SQL2017版本的所遇到的差异语法。本人所了解到的,从SQL2008至SQL2017的语法上基本没有差异,至少目前所遇到的情况是从SQL2008升级至SQL2017的数据库不需要做语法的migration。所以差异对比是以SQL2008以下版本与SQL2008版本的对比。
首先先看一下各SQL版本的Compatibility level:
查看数据库的兼容级别与排序规则的SQL:
SELECT compatibility_level, collation_name FROM sys.databases WHERE name=@database
也可以在数据上右键查看属性→Options中查看Compatibility level,SQL2000及以下版本的没法查看属性。以下是SQL2008及SQL2017版本:
SQL2008兼容SQL版本范围
SQL2017兼容SQL版本范围
1.=null VS is null(经确认,SQL6.5至SQL2008返回结果是一致的)
SQL6.5 & SQL2000 版本下where 条件可以使用 where table.column=null或<>null进行筛选数据,但是在SQL2008(可能是从SQL2005开始,因为没有在SQL2005上尝试过,所以不太确定,下同,本文暂时忽略SQL2005版本)无论是=null或<>null条件都是不成立的,需要写成where table.column is null 或 is not null ;

2.(* =、=* ) VS (left join、right join)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Allen6167

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值