1、oracle建表时只提供级联删除,sqlserver提供级联删除和更新。(虽然建立主外键关系之后,主表的主键值不应该经常修改,可有时候有这种需求。)删除时oracle提供3种选择(set null,级联,什么都不干),sqlserver除了那3种还提供了设置默认值。


2、oracle不提供主键自增,需要用序列加触发器实现,sqlserver提供主键自增[proId] [int] IDENTITY(1,1) NOT NULL,将标识规范里的是标示标示增量标示种子设置后主键就自动生成了。

添加序列:

create sequence seq_depid

minvalue 1

maxvalue 99999

start with 1

increment by 1

nocache;

建触发器:

create or replace trigger trg_depid

before insert on dep

for each row

when (new.depid is null)

begin

select seq_depid.nextval into :new.depid from dual;

end trg_depid;