Quelque part où j'ai juste besoin de passer dans la clé primaire code> d'un personnel et de le trouver dans la base de données et renvoyez la valeur de l'une des colonnes de cette table pour lui à l'appelant - c'est un < Code> bit code> colonne -. Assez simple et je l'ai écrit comme ça. Je voulais juste voir s'il y a une meilleure façon d'écrire la procédure stockée pour atteindre le même objectif ou non.
3 Réponses :
Tout d'abord, le s'il n'y a pas de ligne de correspondance, cela ne renvoie aucune ligne. P> second , il n'est totalement pas clair pour moi pourquoi vous utiliseriez une procédure stockée comme celle-ci. Vous pouvez créer une fonction scalaire définie par l'utilisateur qui semble plus utile. P> p> existe code> semble superflu, donc:
Oh, je n'avais que d'utiliser des fonctions avant. Je pourrais le convertir en fonction de la fonction. ... Mais alors j'ai aussi pensé que peut-être encore à l'avenir, je dois retourner plus de colonnes sur ce personnel afin que je puisse continuer à les ajouter à celui-ci
oui, juste car il s'agit de la clé primaire, on ne peut y avoir qu'un seul résultat, donc pas besoin de top 1 code>. Et le si existez code> est juste inutile lorsque vous pouvez renvoyer le résultat directement. p> p>
Oui, il y a une meilleure façon - supprimer le si existe code> - c'est complètement inutile. En outre, vous n'avez pas besoin de haut (1) code>, car la clé primaire est unique par définition, la procédure stockée ne renvoie jamais une ligne ou rien si la valeur de la clé principale n'est pas trouvée. < Pré> xxx pré> p>
pourquoi pas seulement
SELECT ISNULL (P.SistAdither, 0) .... Code>, vous pouvez sauvegarder le sommet et existeNote latérale: pas b> Utilisez le préfixe
SP _ code> pour vos procédures stockées. Microsoft a Réservé ce préfixe pour son propre usage ( Voir Nommer des procédures stockées I>) , et vous courez le risque d'un nom de nom à l'avenir. C'est également mauvais pour votre performance de procédure stockée . Il est préférable de simplement éviter tout simplementsp _ code> et utiliser quelque chose d'autre comme préfixe - ou pas de préfixe du tout!