Détails
Fonction et procédure stockée dans SQL Server
J’apprends les fonctions et les procédures stockées depuis un certain temps, mais je ne sais pas pourquoi et quand je dois utiliser une fonction ou une procédure stockée. Elles me paraissent identiques, peut-être parce que je suis un peu novice en la matière.
Quelqu'un peut-il me dire pourquoi ?
793
3
Les fonctions sont des valeurs calculées et ne peuvent pas apporter de modifications permanentes à l'environnement de SQL Server (c'est-à-dire qu'aucune instruction INSERT ou UPDATE n'est autorisée).
Une fonction peut être utilisée en ligne dans les instructions SQL si elle renvoie une valeur scalaire, ou peut être jointe si elle renvoie un ensemble de résultats.
Un point à noter dans les commentaires, qui résument la réponse. Merci à @Sean K Anderson:
Les fonctions suivent la définition de l'informatique en ce sens qu'elles DOIVENT retourner une valeur et qu'elles ne peuvent pas modifier les données qu'elles reçoivent en paramètre (les arguments).
Écrivez une fonction définie par l'utilisateur lorsque vous souhaitez calculer et renvoyer une valeur à utiliser dans d'autres instructions SQL ; écrivez une procédure stockée lorsque vous souhaitez plutôt regrouper un ensemble éventuellement complexe d'instructions SQL. Il s'agit de deux cas d'utilisation assez différents, après tout !
Les points suivants peuvent vous aider à décider du moment où il faut utiliser ce qui suit...
Les procédures stockées ne peuvent pas retourner une variable de table alors que les fonctions peuvent le faire.
Vous pouvez utiliser des procédures stockées pour modifier les paramètres de l'environnement du serveur, ce qui n'est pas possible avec les fonctions.
salutations