最近由于项目需要,得把oracle版本功能转换为sql server版本。
sql和oracle还是有很大区别的
这边主要讲的是存储过程
1、分号
ORACLE中,每个语句的结尾都必须以分号结束,而SQL SERVER是不需要
2、赋值
ORACLE版本
create or replace produce PRO_AA
(
iCount in int;
strOutMsg out varchar2;
)
--as 如需定义过程中需要的参数,则在as中定义,规则同上
begin
--主要有两种赋值方式
iCount:=1;--第一种,直接给参数赋值
select count(1) into
iCount from dual;--第二种,将查询的结果赋值到参数中
end;
SQL SERVER 版本
create produce PRO_AA
(
iCount int,
strOutMsg Varchar(max) out
)
begin
--declare 定义存储过程中所需要的参数,规则同上
--
set @iCcount=1 ---第一种,给参数icount赋值
select @iCount=count(1) from dual ---第二种,将查询的结果赋值到参数中
end
3、判断
ORACLE 版本
create or replace produce PRO_AA
(iCount in int;strOutMsg out varchar2)
begin
select count(1) into iCount from dual;
if iCount>0 then
strOutMsg='aaa';---执行操作
end if;
end;
SQL SERVER 版本
create produce PRO_AA
(iCount int,strOutMsg varchar(max) out)
begin
select @iCount=count(1) from dual;
if @iCount>1
begin
strOutMsg='aaa' ----执行操作
end
end
4、字符串定义
ORACLE版本
VARCHAR2 11g需指定长度
SQL SERVER 版本
VARCHAR 没有指定长度,缺省,默认是长度为1的字符串
5、函数区别
ORACLE
NVL(字段,0)
SQL SERVER
ISNULL(字段,0)
6、修改字段类型及长度
ORACLE 版本
ALTER TABLE 表名 MODIFY(列名 数据类型)
SQL SERVER 版本
ALTER TABLE 表名 ALTER COLUMN 列名 数据类型
待续中。。。。在以后项目中,慢慢补充。。暂时体验就这几点