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;