La première chose à remarquer est que cela pourrait être dangereux en soi.
Vous voudriez avoir des horodatages sur chaque table pour les performances, sinon vous allez rencontrer des problèmes potentiels de collision d'enregistrements. Sans horodatage, vous voulez vraiment être certain que vous n'avez pas de identity_inserts et que la sauvegarde de la base de données n'a pas été écrite indépendamment du système actuel.
Mais si vous avez horodatages, ou un moyen garanti si l'identification des enregistrements pour éviter une collision, etc, et vous voulez vraiment rouler votre propre plutôt que d'utiliser l'un des outils de comparaison de données disponibles puis ...
Vous pourriez écrire une procédure stockée avec une requête dynamique et itérer sur chaque table avec INFORMATION_SCHEMA.TABLES et exécuter une instruction d'insertion créée.
EXEC sp_execute '' est la structure pour les requêtes dynamiques. Créez une variable pour la requête, utilisez un curseur pour parcourir les fiches INFORMATION_SCHEMA_TABLES et INFORMATION_SCHEMA_TABLES pour construire des instructions SQL.
Il faut espérer que suffisamment d'informations pour vous aider à construire une requête SQL dynamique qui aurait pour effet de faire quelque chose comme ce qui suit sur chaque table:
INSERT INTO TableA(Col1, Col2, ColN)
SELECT
Col1, Col2, ColN
FROM
OldDatabase.TableA
WHERE
TableA.[ID or Timestamp] NOT IN OldDatabase.[ID or TIMESTAMP]
Mais vous voulez vraiment examiner pourquoi vous manquez ces enregistrements. Peut-être aussi les insérer dans une table de notation pour vous assurer que vous pouvez revenir en arrière et examiner pourquoi.
Espérons que cela aide.
c'est une question trop large. comment allez-vous choisir quels enregistrements sont corrects s'il y a des conflits avec les identifiants? allez-vous effectuer des mises à jour si certains enregistrements ont changé? Allez-vous supprimer des enregistrements si nécessaire? Et si les enregistrements avec des relations qui reposent sur des clés primaires doivent être ajoutés mais que les identifiants sont pris par d'autres enregistrements. Cela ressemble à un problème qui ne sera pas résolu d'ici la date limite. – Tanner
De nombreux outils tiers permettent de comparer les données entre les bases de données. SQL Data Compare from redgate est l'un d'entre eux. Quelque chose comme ça est à peu près aussi proche que vous pouvez obtenir un bouton facile pour ce genre de chose. C'est incroyablement compliqué pour des choses comme la manipulation lorsque le schéma est différent. J'aime les délais. J'aime le son de whooshing qu'ils font en passant. –