Bonjour à toutes et tous,
tout d'abord bonne année et meilleurs voeux à tous !
Je suis confronté à un souci assez délicat. Je suis dans la refonte d'une application de access vers ASP.NET/SQL 2k5.
Je dois migrer les données d'une base à l'autre mais les clé primaires de la base access ne sont pas toujours incrementé de 1. Je peux alors me retrouver avec un id 6 suivi d'un id 8.
Pour la migration j'ai utilisé l'export csv d'access puis la commande Bulk insert.
Pour ne pas gérer les id depuis mon code, j'utilise la contrainte d'identité de SQL. Mais du coup, SQL me recalcule mes id... Ceci est embettant car du coup les associations de clé etrangere ne valent plus rien :s
J'ai d'abord pensé à créer mes tables sans contrainte d'identité et les rajouter après, mais ceci n'est pas possible en script (d'après ce que j'ai pu lire dans un forum). Ou bien si, mais il faut passer par une table temporaire, et au final le résultat sera le meme, au moment du bulk insert il me remettra de nouveaux id recalculé.
J'ai ensuite pensé à faire un SET IDENTITY_INSERT maTable OFF avant mon bulk insert, en espérant que le moteur insèrera les données avec les bons anciens id, mais non, les id ont bel et bien changé et je me retrouve avec un 7 au lieu de mon 8 (qui était le dernier id de la table).
J'ai quelques tables quand meme donc le faire à la main... bof ....Si y a vraiment pas d'autres solutions ok, mais ça m'arrangera pas
A celui, celle, ceux qui auront de brillantes idées : d'avance, Merci !
Partager