Et de toute façon c'est pas parceque "là maintenant tout de suite, y'a pas de lock" que "dans la µs suivante, y'a pas 100000 locks sur la table"
Donc ça sert à rien d'aller voir si y'a des locks. Tant que t'as pas obtenu le tiens, tu ne seras jamais sûr de rien.
Sinon, tu peux locker la table avec un SELECT juste avant :
BEGIN TRAN
SELECT NULL FROM [matable] WITH XLOCKX
--- tant que tu commit pas, la table sera lockée entièrement en mode exclusif : seul toi à le droit d'y accéder
cependant, un ALTER n'étant pas transactionnel, je sais pas ce que ça donne de tenter un alter au milieu d'une transaction. à mon avis ça va te claquer à la gueule et ça me semble logique.
Message édité par MagicBuzz le 01-07-2008 à 16:35:31