La "nouvelle" façon, comme mentionné, n'a rien à voir avec SQL 2008. EXEC a été disponible pour un certain temps. C'est aussi - dans la plupart des cas - une très mauvaise idée.
Vous perdez le paramétrage, ce qui signifie que vous êtes maintenant vulnérable à SQL Injection. C'est moche et sujet aux erreurs. C'est moins efficace. Et il crée une nouvelle portée d'exécution - ce qui signifie qu'il ne peut pas partager les variables, les tables temporaires, etc. - à partir de son appel stocké proc.
sp_executesql est une autre méthode (et préférée) d'exécution de SQL dynamique. C'est ce que vos applications clientes utilisent, et il supporte les paramètres - ce qui résout le problème le plus flagrant d'EXEC. Cependant, il a également des cas d'utilisation très limités dans un proc stocké. A propos de la seule utilisation de rachat est lorsque vous avez besoin d'un nom de table ou de colonne dynamique. T-SQL ne supporte pas une variable pour cela - vous devez donc utiliser sp_executesql. Le nombre de fois que vous devez ou devez faire cela est très bas.
Conclusion: vous feriez mieux d'oublier que vous en avez déjà entendu parler.
Vous pourriez envisager d'augmenter votre cote d'acceptation. –
Etre nitpicky ici: ces choses sont appelées "magasin * D * procédures" - ils sont stockés dans SQL Server - pas "procédures de stockage" - ils n'ont rien à voir avec un "magasin" ... –