Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Générer des instructions INSERT à partir d'une table SQL Server

Je vois que vous avez marqué votre message SQL-Server-2005, c'est dommage car la version 2008 a un outil d'assistant pour cela.

Vous pouvez créer les instructions d'insertion à partir de chaînes concaténées.

Si champ1 est une chaîne, champ2 un numérique :

select 'insert into data (field1, field2) values('' || field1 || '', ' || char(field2) ||');' from data where ID < 9000;

Évidemment, cela peut prendre du temps si vous avez beaucoup de colonnes, étant donné que les chaînes ont besoin de guillemets. Vous devrez peut-être convertir les colonnes numériques en utilisant char() aussi.

Cela devrait vous donner une liste d'instructions d'insertion, comme ceci :

insert into data (field1, field2) values('A', 10);
insert into data (field1, field2) values('B', 20);
insert into data (field1, field2) values('C', 30);

Ce n'est peut-être pas la manière la plus élégante de procéder, mais cela fonctionne.