12.07.2015 Views

Solution Guide for Migrating Oracle on UNIX to SQL Server - Willy .Net

Solution Guide for Migrating Oracle on UNIX to SQL Server - Willy .Net

Solution Guide for Migrating Oracle on UNIX to SQL Server - Willy .Net

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<str<strong>on</strong>g>Soluti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>Guide</str<strong>on</strong>g> <str<strong>on</strong>g>for</str<strong>on</strong>g> <str<strong>on</strong>g>Migrating</str<strong>on</strong>g> <str<strong>on</strong>g>Oracle</str<strong>on</strong>g> <strong>on</strong> <strong>UNIX</strong> <strong>to</strong> <strong>SQL</strong> <strong>Server</strong> <strong>on</strong> Windows 119Operati<strong>on</strong> <str<strong>on</strong>g>Oracle</str<strong>on</strong>g> <strong>SQL</strong> <strong>Server</strong>ON UPDATECASCADE }NO ACTION}CREATE TABLEtable_name(…,column_name datatype,…,[ CONSTRAINTc<strong>on</strong>straint_name ]FOREIGN KEY(column_name [,…]REFERENCESref_table_name(ref_column_name[, …])ON UPDATE { CASCADE |NO ACTION}TriggersTriggers are used <strong>to</strong> en<str<strong>on</strong>g>for</str<strong>on</strong>g>ce more complex business rules than can be en<str<strong>on</strong>g>for</str<strong>on</strong>g>ced usingc<strong>on</strong>straints. Triggers are s<strong>to</strong>red procedures that are implicitly executed when certain datamodificati<strong>on</strong> (using data manipulati<strong>on</strong> language statements, also known as DML) isper<str<strong>on</strong>g>for</str<strong>on</strong>g>med against tables and views. In <str<strong>on</strong>g>Oracle</str<strong>on</strong>g>, there can be up <strong>to</strong> twelve combinati<strong>on</strong>s oftrigger executi<strong>on</strong>s (acti<strong>on</strong>s) based <strong>on</strong>:● DML operati<strong>on</strong>: INSERT, UPDATE, DELETE● Timing: BEFORE, AFTER● Level: ROW, STATEMENTTable 6.18 evaluates <strong>SQL</strong> <strong>Server</strong> support <str<strong>on</strong>g>for</str<strong>on</strong>g> the <str<strong>on</strong>g>Oracle</str<strong>on</strong>g> trigger functi<strong>on</strong>ality.Table 6.18: Functi<strong>on</strong>ality of <str<strong>on</strong>g>Oracle</str<strong>on</strong>g> Triggers Mapped <strong>to</strong> <strong>SQL</strong> <strong>Server</strong>Trigger Feature <str<strong>on</strong>g>Oracle</str<strong>on</strong>g> <strong>SQL</strong> <strong>Server</strong>DML – INSERT Yes YesDML – UPDATE Column/Row RowDML – DELETE Yes YesTiming – BEFORE Yes Yes (INSTEAD OF)Timing – AFTER Yes YesLevel Row/Statemen tRowViews – INSTEAD OF Yes YesMultiple triggers per acti<strong>on</strong> Yes Yes (first/last specified)The <strong>SQL</strong> <strong>Server</strong> INSTEAD OF triggers are equivalent <strong>to</strong> <str<strong>on</strong>g>Oracle</str<strong>on</strong>g>’s BEFORE triggers.When migrating triggers from <str<strong>on</strong>g>Oracle</str<strong>on</strong>g>, the <strong>on</strong>ly drawback is that <strong>SQL</strong> <strong>Server</strong> does notsupport statement-level triggers. However, there are two pseudo-tables, inserted anddeleted, that are populated during the trig ger executi<strong>on</strong> and which can be used <strong>to</strong>simulate statement-level operati<strong>on</strong>s. These insertedand deleted pseudo tables aresimilar <strong>to</strong> the :old and :new pseudo-rows in <str<strong>on</strong>g>Oracle</str<strong>on</strong>g> and are populated with all (multiple)rows affected by the trigger executi<strong>on</strong>. The <strong>SQL</strong> <strong>Server</strong> deleted and inserted pseudotablesare available by default and are not specified as part of the trigger definiti<strong>on</strong>. In

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!