Récupérer les dernières lignes insérées

J'ai une table qui contient des colonnes GUID et Name et j'ai besoin de récupérer les dernières lignes insérées afin que je puisse le charger dans table2.

Mais comment puis-je find les dernières données dans le tableau 1. Je semble être perdu à ce sujet J'ai lu des messages similaires posant la même question mais les réponses ne semblent pas fonctionner pour ma situation.

J'utilise SQL Server 2008 et je télécharge mes données en utilisant SSIS

1 – Une façon de le faire est avec des triggersurs. Consultez mon input de blog qui montre comment copyr des données d'une table à une autre sur une insertion.

Triggers pour répliquer datatables = http://craftydba.com/?p=1995

Cependant, comme la plupart des choses dans la vie, il y a des frais généraux avec des triggersurs. Si vous chargez en masse une tonne de données via SSIS, cela peut s'accumuler.

2 – Une autre façon d'y parvenir est d'append une date de modification à votre première table et de modifier votre package SSIS.

ALTER TABLE [MyTable1] ADD [ModifyDate] [datetime] NULL DEFAULT GETDATE(); 

Ensuite, changez votre package SSIS. Dans le stream de contrôle, ajoutez une tâche SQL d'exécution. Insérez des données de [MyTable1] à [MyTable2] en utilisant TSQL.

 INSERT INTO [MyTable2] SELECT * FROM [MyTable1] WHERE [ModifyDate] >= 'Start Date/Time Of Package'; 

Exécuter la tâche SQL = http://technet.microsoft.com/en-us/library/ms141003.aspx

Cela sera plus rapide qu'un stream de données ou exécutera une command OLEDB puisque vous travaillez avec datatables sur le server.