日期:2014-05-16  浏览次数:20666 次

移植数据库时的几点发现

     a. SQL Server与Oracle的两点区别

 

  今天在做SQL Serve到Oracle的数据库移植时发现了SQL Server和Oracle的两个很大的区别.

 

     1. SQL Server支持级联更新和级联删除. Oracle却只支持级联删除.

SQL级联删除与级联更新使用格式:
CREATE TABLE A001
(ID INT PRIMARY KEY,NAME VARCHAR(20))
CREATE TABLE A002
(ID INT REFERENCES A001(ID)ON DELETE CASCADE ON UPDATE CASCADE,AGE TINYINT)
ORACLE
级联删除使用格式:
CREATE TABLE A001
(ID INT PRIMAY KEY,NAME VARCHAR2(20))
CREATE TABLE A002
(ID INT REFERENCES A001(ID)ON DELETE CASCADE,AGE NUMBER(2,0))

 

oracle要实现级联更新可以用trigger实现.

 

参考http://blog.csdn.net/zjlme/archive/2008/07/25/2709278.aspx

 

     2. SQL Server的外键可以引用主键或唯一索引