Bonjour à tous,
Je vous expose mon problème :
J'ai une base de données SQL Serveur qui contient des tables dont les index sont en auto_increment.
Pour le fonctionnement normal de mon application, c'est parfait.
Ce n'est pas le cas pour mon script.vbs de peuplement inital de ma BD qui va chercher des données depuis diverses sources, dont une autre base de donnée où je récupère des tables avec leurs index déjà existant que je souhaite conserver, je dois donc pouvoir insérer des clés primaires dans une table dont la clé primaire est en auto_increment.
Donc avant de lancer mon script d'importation, je modifie la propriété "Compteur" de mes tables par l'interface graphique (SQL Server Entreprise Manager) :
Et une fois mon script de peuplement terminé, je repositionne la propriété Compteur à "oui".
Cette solution manuelle fonctionne, mais me fait perdre pas mal de temps, car mon appli étant en cours de développement je relance régulièrement mon script de peuplement, et je dois faire cette manip pour 11 tables.
J'ai donc cherché une première solution :
SET INDENTITY INSERT ma_table OFF/ON
Que je n'ai pas réussi à mettre en oeuvre car cette commande se solde à chaque fois par un "Le type ne correspond pas" de la part du serveur MSSQL sans plus de précision.
Je me suis ensuite penché sur un éventuel ALTER TABLE ma_table .... qui supprimerait la propriété auto_increment de mon index, mais sans succès également.
J'ai recherché sur Internet une solution à ce problème, et je n'ai pas trouvé.
Je m'adresse donc à vous, pour m'aider à trouver la commande magique en SQL qui me permettra d'insérer des index dans mes tables sans avoir à modifier mes 11 tables avant ET après chaque peuplement.
Partager