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

MS SQL Server Discussion :

MS 2K: chercher d'un 'call' d'un SP


Sujet :

MS SQL Server

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Japon

    Informations forums :
    Inscription : Novembre 2007
    Messages : 125
    Points : 92
    Points
    92
    Par défaut MS 2K: chercher d'un 'call' d'un SP
    Bonjour,

    Je souhaiterai trouver ou est appellé un "Stored Procedure" dans des trigger/SP.

    Merci

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    bonjour,

    il faut chercher les commandes EXEC généralement. Parfois les procédures sont appelées directement par leur nom, sans le EXEC.

    Si ça ne répond pas à la question, merci de préciser votre problème.
    Emmanuel T.

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Japon

    Informations forums :
    Inscription : Novembre 2007
    Messages : 125
    Points : 92
    Points
    92
    Par défaut
    d'une maniere ou d'une autre le SP 'COPY_DEALER ' est appellé, et je dois trouver ou, comment, par quoi (autre sp, trigger,..).


    merci

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 786
    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 786
    Points : 52 793
    Points
    52 793
    Billets dans le blog
    5
    Par défaut
    Utilisez les vues d'informations de schéma :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT ROUTINE_NAME, ROUTINE_TYPE 
    FROM   INFORMATION_SCHEMA.ROUTINES
    WHERE  ROUTINE_DEFINITION LIKE '%COPY_DEALER%'
    Lisez l'article que j'ai écrit à ce sujet : http://sqlpro.developpez.com/cours/s...age=partie2#L9

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Japon

    Informations forums :
    Inscription : Novembre 2007
    Messages : 125
    Points : 92
    Points
    92
    Par défaut
    Bonjour,
    je pense que je me suis mal expliqué, je ne cherche pas a savoir si 'COPY_DEALER' est un triger ou un SP, mais a savoir par qui, il est appellé, genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    create  TRIGGER [dbo].[tr_DEALER_PROFILE_delete_DG] ON [dbo].[DEALER_PROFILE] after DELETE AS  
     
    declare @did char(5)
    select @did=d.Dealerid from deleted d
     
     exec COPY_DEALER @did 
     
     
     
    RETURN

  6. #6
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Points : 923
    Points
    923
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select name,xtype from sysobjects
    where name like '%COPY_DEALER%'
    fais çà dans ta base

    si trouvé et xtype='Tr' c'est un trigger
    si xtype ='P' c'est une proc
    Errare humanum est, perseverare diabolicum (Sénèque)

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Février 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 126
    Points : 143
    Points
    143
    Par défaut
    S'il s'agit d'une étude ponctuelle, pourquoi ne genererais-tu pas le script complet de ta DB (sur toutes les SP, les tables et les fonctions). Il te suffirait ensuite de faire un CTRL+F sur le fichier .sql produit pour voir quels objets font reference à COPY_DEALER.

    Un tuto pour faire cela : ici.

    Il existe sans doute une autre methode, ceci dit.

    ++

  8. #8
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Japon

    Informations forums :
    Inscription : Novembre 2007
    Messages : 125
    Points : 92
    Points
    92
    Par défaut
    Merci Merci , mais c'est vraiment pas ce dont j'ai besoin. surout que je sais déjà que COPY_DEALER est une Procedure.

  9. #9
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Japon

    Informations forums :
    Inscription : Novembre 2007
    Messages : 125
    Points : 92
    Points
    92
    Par défaut
    C'est une possibillité, mais je voudrai savoir le faire avec une querry.

    Pour une utilité ulterieure.

    merci

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    pour connaître les dépendances d'une procédure ou d'une table (appelants et appelés) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    exec sp_depends <maproc> ou <matable> ....
    Emmanuel T.

  11. #11
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 786
    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 786
    Points : 52 793
    Points
    52 793
    Billets dans le blog
    5
    Par défaut
    Vous n'avez visiblement pas compris et en plus au lieu de tester ce que je vous ais donné et qui marche parfaitement et répond à votre problème, vous vous permettez de mettre en doute ce que je vous donne comme réponse. C'est pour le moins maladroit et ne donne pas envie de continuer à aider les autres !!!

    Donc je perd mon temps à expliquer la chose, croyant que vous pouvez encore à ce stade être récupérable !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT ROUTINE_NAME, ROUTINE_TYPE 
    FROM   INFORMATION_SCHEMA.ROUTINES
    WHERE  ROUTINE_DEFINITION LIKE '%COPY_DEALER%'
    La vue INFORMATION_SCHEMA.ROUTINES contient la description de toutes les routines Y COMPRIS LE CODE SQL DE CHACUNE DES ROUTINES. C'est justement dans la colonne ROUTINE_DEFINITION que se trouve ce code SQL !
    Donc en faisant un like (mais peut être ne savez vous pas faire un like auquel cas je vous invite à lire un de mes bouquins... ) vous trouverez les appels à cette proc.

    Maintenant la solution avec sp_depends n'est pas certaine car seule les dépendances vue le sont si la résolution a été complète. Par exemple si vous avez créé une proc P1 faisant appel à P2 et que vous n'avez pas encore créé P2, alors sysdepends (la table scrutée par la sp_depends) ne sera pas alimentée lors de la création de P2...
    Donc aucune garantie !

    Quand à celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT name,xtype FROM sysobjects
    WHERE name LIKE '%COPY_DEALER%'
    Elle ne pouura plus fonctionner avec les futures version de SQL Serve !
    Mais elle est plus cohérente !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  12. #12
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Japon

    Informations forums :
    Inscription : Novembre 2007
    Messages : 125
    Points : 92
    Points
    92
    Par défaut
    Bonjour,

    Loin de moi de douté de vos années d'experiences et des vos bouquins mais vos réponses ne répondent pas à ma question.

    en claire testé et non aprouvé.

    Merci.

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Février 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 126
    Points : 143
    Points
    143
    Par défaut
    en claire testé et non aprouvé.
    Sois plus précis ! Le code que t'a fourni SQLPRO ne te renvoi rien ? il te renvoi une message d'erreur ? Ce qu'il te renvoi ne correspond pas à tes attentes ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT ROUTINE_NAME, ROUTINE_TYPE ,ROUTINE_DEFINITION
    FROM   INFORMATION_SCHEMA.ROUTINES
    WHERE  ROUTINE_DEFINITION LIKE '%COPY_DEALER%'
    Parceque si je m'en tiens à ta question intiale ;
    d'une maniere ou d'une autre le SP 'COPY_DEALER ' est appellé, et je dois trouver ou, comment, par quoi (autre sp, trigger,..).
    ... tout le monde convient que le code fourni réponds à ta question !

  14. #14
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Japon

    Informations forums :
    Inscription : Novembre 2007
    Messages : 125
    Points : 92
    Points
    92
    Par défaut
    Le code fournis me dis simplement si c'est une procedure ou autre.

    Et n'indique nullement par qui et ou, elle est appellé.

    je n'ai pas de msq d'erreur, simplement cela ne correspond pas à mes besoin.

    Pour moi et mes collegues, ma question est claire et simple. et de plus j'ai donné un exemple, je ne sais pas quoi dire ou montré.


    une fonction X ( Stored Procedure) est utlisé par un/des triggers ou autre fonction Y Z.
    et je dois retrouver les fonctions/triggers Y,Z qui appelle la fonction X.

    plus simple que ca, je ne peut pas le faire.

    Merci

  15. #15
    Membre habitué
    Profil pro
    Inscrit en
    Février 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 126
    Points : 143
    Points
    143
    Par défaut
    Le code fournis me dis simplement si c'est une procedure ou autre.
    J'en conclus qu'aucun objet n'appel ta procédure, car j'ai fais le test dans mon environnement avec comme variable le nom d'une SP que je sais etre utilisée par d'autres objets. Et bingo, le code fourni sur ce post me retourne en effet tous les objets faisant appel (c'est à dire ayant le nom de ma SP dans leur code SQL) à cette procédure.

    Je te conseille de faire le test ; crée une SP bidon qui fait appel à COPY_DEALER puis execute ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT ROUTINE_NAME, ROUTINE_TYPE ,ROUTINE_DEFINITION
    FROM   INFORMATION_SCHEMA.ROUTINES
    WHERE  ROUTINE_DEFINITION LIKE '%COPY_DEALER%'
    Qu'obtiens tu ?

    ++

  16. #16
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Japon

    Informations forums :
    Inscription : Novembre 2007
    Messages : 125
    Points : 92
    Points
    92
    Par défaut
    j'ai fait le test, un trigger appelle ma SP mais la querry en question ne le signalle pas.

    avant de répondre, je test ce qu'on me donne.

    ++

Discussions similaires

  1. chercher des données dans sa propre requete...
    Par shadowbob dans le forum Requêtes
    Réponses: 4
    Dernier message: 27/06/2004, 17h13
  2. chercher l'index maxi d'une table
    Par picoti2 dans le forum Bases de données
    Réponses: 13
    Dernier message: 22/03/2004, 08h07
  3. [VB6]Chercher l'adresse IP
    Par Shea13 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 19/02/2004, 17h07
  4. [TP]Différences Far call <-> Near Call
    Par denokan dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 02/12/2003, 10h01
  5. [BASM] Comment faire un "Far Call" ?
    Par - Robby - dans le forum Langage
    Réponses: 3
    Dernier message: 03/09/2003, 08h56

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