On Sat, Oct 22, 2011 at 11:35 AM, Inoussa OUEDRAOGO <inouss...@gmail.com> wrote: >> Ok, searching some more I see that "select scope_identity()" could >> return the generated primary key. But how to get the value? > > Better use the RETURNING* clause** as it clearly state the column > value you are expecting; The "scope_identity()" may be a source of > subtle bugs that are > difficult to resolve, for example : > what if the table make use of two sequences (yes sometime this is needed) > what if the table's insert trigger generates a insert query(or > stored procedure) into another table which make use of sequence > > (*) http://www.postgresql.org/docs/8.3/interactive/sql-insert.html > (**) this clause is at least supported by Firebird, MS SQL SERVER, ORACLE
Talking about MSSQL Server, the scope_identity() return the ID inside the scope, ie, return the ID from your INSERT instruction, ignoring Triggers, for example. If you use @@IDENTITY then you get the last ID inserted, ie, if you have triggers you do not know which ID belongs which table. Marcos Douglas _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal