Voilà, voilà, je viens de tomber sur une base de données, où une des tables n’a pas de colonne en clé primaire (en en compteur).
Bon, avec l’Entreprise Manager, c’est super facile à changer ça.
Problème, personne n’a accès direct à la base de prod, et le seul moyen serait d’utiliser un script de mise à jour (pour éviter d’y aller en personne, et faire les modifs).
J’ai un peu tout essayé, mais il semble pas possible d’exécuter un ALTER TABLE pour modifier une colonne en la rendant clé primaire et en compteur.
Ais-je (pitié, pitié, pitié) tort ?
Ou existe-t-il un autre moyen ?
Tiens des tests marrants.
En fait, j’ai un accès à une base Access avec tables liées par DSN.
Impossible de modifier une table sous Access.
Sur ce poste, ça fonctionnait, pas chez le client.
On a trouvé qu’ici l’authentification DSN se faisait par un compte Windows (db_owner), et chez le client par un compte SQL (qui est datareader et datawriter)
De ce que j’ai trouvé sur le net, le problème vient que dans la table SQLServer, il n’y a pas de clé primaire, et donc la table est donnée en lecture seule.
Mais c’est là que tout explose… Pourquoi, en modifiant le compte SQL en db_owner, j’arrive à mettre à jour mes champs depuis Access ?
Edit : Ok, je m’aime, je m’aime, mais je suis tête en l’air, j’oublie toujours la fonction “Générer un script SQL” de l’entreprise manager…
Mais… J’ai pas l’air d’avoir l’incrément… Je vérifie quand même
PS: Hoo désolé, ça pue le post boulet là…