IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

comment créer une fonction globale ?


Sujet :

Développement SQL Server

  1. #1
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 242
    Points
    4 242
    Par défaut comment créer une fonction globale ?
    Bonjour,

    Est-il possible de créer une fonction sous SQL Server 2005 qui soit utilisable dans n'importe quelle DB ?

    Je sais qu'il est possible de faire cela avec une procédure stockée et de la marquée comme objet système comme montré par Elsuket et Sql Pro respectivement ici et .

    Mais peut-on faire cela pour une fonction plutôt qu'une procédure stockée ?
    N'ayant rien trouvé de concluant à ce sujet sur google, je me tourne vers vous.

    Merci d'avance,

    Kropernic.

    P.S. : Une fois une procédure stockée marquée système, comment faire pour annuler ce marquage et pouvoir la supprimer si d'aventure cela était nécessaire ?

  2. #2
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 242
    Points
    4 242
    Par défaut
    Petit complément d'information d'après des dernières recherches.

    - Il est possible de créer une fonction dans la DB Master et d'utiliser sp_MS_marksystemobject dessus mais il faudra toujours préfixer la fonction par le nom de la DB pour l'utiliser...

    - J'ai également lu ici que cela pourrait fonctionner en préfixant la fonction par "sp_" mais n'ayant pas envie de polluer la DB master et ne sachant comment supprimer un objet système, je n'ai pas testé cela.

    Quelqu'un confirme-t-il le 2e point ? De mon point de vue, je dirais que peu importe le nom, sql server doit quand même être capable de reconnaître si un objet est une procédure ou une fonction et de ce fait, cela ne changera rien...

    Bref, je cherche toujours à savoir si cela est possible ou non.

    Kropernic

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 849
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 849
    Points : 52 978
    Points
    52 978
    Billets dans le blog
    6
    Par défaut
    ça n'est actuellement pas possible, mais en demande chez MS :
    http://connect.microsoft.com/SQLServ...ltin-functions

    Solution de contournement :
    l'appeler avec master.dbo.udf


    ps :
    Comme indiqué dans mon article :

    Il n'existe pas de procédure inverse destinée à faire revenir une procédure générique marquée système dans l'état d'une procédure ordinaire. Le plus simple est alors de la supprimer et de la recréer.

    A +

  4. #4
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 242
    Points
    4 242
    Par défaut
    Ok merci pour la réponse.

    P.S. : Oups, j'ai du zappé cette partie là de l'article... Désolé.

    Kropernic.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C#] Comment créer une variable globale?
    Par FraktaL dans le forum Windows Forms
    Réponses: 8
    Dernier message: 10/05/2017, 14h10
  2. comment créer une fonction dans un activex
    Par barhoom dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 11/03/2007, 18h19
  3. Réponses: 9
    Dernier message: 22/02/2007, 14h51
  4. comment créer une fonction et la déclancher a chaque jour
    Par G_Kill dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 19/12/2006, 18h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo