以前用惯了Oracle,很习惯于Oracle的系统函数和使用习惯,最近在开发中遇到 SQLServer的开发,发现非常的不适应,可能很多熟悉一种数据库的朋友在转换的时候都遇到过这样的麻烦吧
Oracle(简称O)和SQLServer(简称S)函数上的差别已经有前人总结过了,本文随便说说我遇到的几个小问题,总结的不全面,希望大家指正
1. O与S在数据类型的声明上有些区别,比如
O: Number,varchar2
S:int,varchar
2. 变量的定义上,O中直接定义变量,而S中的变量要加上@
O:declare ID Number
S:declare @ID int
3. 变量赋值方面,S中要加set
O: ID=10
S: set @ID=10
4. O中创建对象时有Replace功能,而S中好像没有
O: Create or Repalce Table (或者Procedure...)
S: if exists (select 1 from sysobjects where name='objectname')
drop Table objectname
GO
5. O中的函数和变量要从空过程DUAL中获取,S不必
O: select sysdate from dual
S: select getdate()
6. 返回头几行的方法
O: select * from tab_name where rownum<10
S: select top 10 * from tab_name
7.O中不支持 "Select 1 from ..." 的写法