SQL Server 2005 a de superbes vues sys.XXX sur le catalogue système que j'utilise fréquemment.
Ce qui me trébuche est ceci: pourquoi y a-t-il une vue "sys.procedures" pour voir des informations sur vos procédures stockées, mais il n'y a pas de vue "sys.functions" pour voir la même chose pour vos fonctions stockées?
Personne n'utilise les fonctions stockées? Je les trouve très pratiques par exemple pour les colonnes calculées et autres!
Y a-t-il une raison spécifique pour laquelle sys.functions est manquant, ou est-ce juste quelque chose qui n'a pas été considéré comme suffisamment important pour être mis dans les vues du catalogue sys? Est-il disponible dans SQL Server 2008 ??
Bravo, Marc
sys.functions
. Vous avezsys.foreign_keys
et nonsys.primary_keys
. Quoi qu'il en soit, je vous demande d'utiliser le canal ouvert de Microsoft pour proposer et suggérer de nouvelles fonctionnalités pour les versions à venir de SQL Server à connect.microsoft.com/SQLServer/Feedback J'ai déjà ajouté un commentaire concernant sys.functions à connect.microsoft.com/ SQLServer / feedback / details / 1127920Réponses:
Je trouve que les UDF sont très pratiques et je les utilise tout le temps.
Je ne suis pas sûr de la justification de Microsoft pour ne pas inclure un équivalent sys.functions dans SQL Server 2005 (ou SQL Server 2008, pour autant que je sache), mais il est assez facile de lancer le vôtre:
la source
Une autre façon de lister les fonctions consiste à utiliser les vues INFORMATION_SCHEMA.
Selon le site Web de Microsoft, "Les vues de schéma d'informations fournissent une vue interne, indépendante de la table système, des métadonnées SQL Server. Les vues de schéma d'informations permettent aux applications de fonctionner correctement bien que des modifications importantes aient été apportées aux tables système sous-jacentes". En d'autres termes, les tables système sous-jacentes peuvent changer à mesure que SQL est mis à niveau, mais les vues doivent rester les mêmes.
la source
INFORMATION_SCHEMA
requête renvoie des résultats très intéressants commeIS_DETERMINISTIC
(que je voulais découvrir).Ceci est valide en 2008 R2 par rapport à ce que SSMS génère lorsque vous créez un script DROP d'une fonction:
la source
C'est très légèrement plus verbeux, mais cela devrait faire exactement la même chose:
Pour autant que je sache, ce n'est pas non plus dans SQL Server 2008.
la source
Cela n'ajoute rien de nouveau, mais j'ai trouvé ce qui suit plus facile à retenir:
la source
{ }
) dans la barre d'outils de l'éditeur pour bien le formater et la mettre en évidence!sys.objects
autant que je peux le «avoir tout» .essaye ça :
la source
d'ailleurs, ne voudriez-vous pas inclure type = 'FS'?
c'est ce à quoi correspond l'élément dans sys.objects pour mon UDF qui est dérivé d'une DLL externe
la source
Pour prolonger la réponse de @ LukeH, renvoyer les définitions de fonction nécessite également une jointure à la
sys.sql_modules
table. La requête pour ceci est donc:où le ci-dessus affiche respectivement le nom de la fonction, sa définition et l'identificateur d'objet.
la source
Pour une description plus complète des fonctions scalaires, y compris le propriétaire et le type de retour:
la source
SQL 2000
spécifique, léger ajustement pour le nom de l'objet:OU
la source