Alter Column

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à…

Histoire de pas te laisser à discuter tout seul :stuck_out_tongue:

Pourquoi pas créer une nouvelle colonne qui va bien (en primary key ET compteur)
puis faire un update de cette colonne avec les valeurs de celle que tu veux modifier.
Puis virer cette dernière pour la remplacer par la nouvelle

Oui, c’est pas simple, mais c’est peut-être plus faisable en script…

Tout ce que fait entreprise manager c’est d’executer des commandes sur la DB. Donc tout ce que tu fais dans l’interface est faisable en script. 100% :stuck_out_tongue: Donc pas de panique.

[quote name=‹ mccricri › date=’ 8 Dec 2004, 18:43’]Pourquoi pas créer une nouvelle colonne qui va bien (en primary key ET compteur)
puis faire un update de cette colonne avec les valeurs de celle que tu veux modifier.
Puis virer cette dernière pour la remplacer par la nouvelle
[right][post=« 311217 »]<{POST_SNAPBACK}>[/post][/right][/quote]

C’était la solution ultime, mais j’avais pas envie de faire comme ça. J’aime bien garder l’ordre de mes colonnes, même si c’est débile…

[quote name=‹ GloP › date=’ 8 Dec 2004, 21:58’]Tout ce que fait entreprise manager c’est d’executer des commandes sur la DB. Donc tout ce que tu fais dans l’interface est faisable en script. 100% :stuck_out_tongue: Donc pas de panique.
[right][post=« 311265 »]<{POST_SNAPBACK}>[/post][/right][/quote]

Bah, ça marche pas pour modifier u necolonne en la mettant IDENTITY. J’ai vu un site qui faisait un profiler sur cette opération (réalisable qu’avec l’entreprise manager) et bon voilà quoi… Je vais éviter ça…