2
votes

Le générateur de rapports SSRS exécute une procédure que je ne trouve pas dans SSMS

J'ai un rapport qui appelle un nom de procédure stockée sp_rptPoolAndHottubSchedule, lorsque j'exécute la procédure à partir du générateur de rapports, elle s'exécute sans problème. Lorsque j'essaie de localiser cette procédure dans SSMS en utilisant l'interface graphique ou les objets SYS, elle ne doit pas être trouvée.

Qu'est-ce que je fais de mal? Cela semble simple.

 entrez la description de l'image ici


9 commentaires

Une possibilité est que vous cherchez sur le mauvais serveur ou dans la mauvaise base de données.


Ou vous ne disposez pas des autorisations appropriées pour afficher cet objet ou le schéma est différent.


Léger détour .... sqlperformance.com/2012/10/t-sql- requêtes / sp_prefix


@TabAlleman Je suis connecté à l'hôte local en tant que magasin de données et à la base de données hébergée localement sur ce serveur. J'utilise mes informations d'identification intégrées pour l'exécuter, donc je sais que je dois y avoir accès


@Brad Je suis connecté à l'hôte local en tant que banque de données et à la base de données hébergée localement sur ce serveur. J'utilise mes informations d'identification intégrées pour l'exécuter, donc je sais que je dois y avoir accès


Vérifiez les informations d'identification de la source de données, s'il s'agit d'informations d'identification SQL spécifiques, vous n'êtes pas connecté à la base de données de la même manière lorsque vous regardez via SSMS. Si vous connaissez les informations d'identification utilisées par la source de données, connectez-vous à SSMS avec les mêmes informations d'identification.


@AlanSchofield Il utilise l'authentification intégrée, donc il utilise mes identifiants de connexion


La seule chose que je pense essayer ensuite est d'exécuter une trace sur le serveur et de voir quelle instruction est réellement exécutée lorsque vous exécutez le rapport.


Avez-vous vérifié la base de données principale pour voir si elle est là?


3 Réponses :


0
votes

Êtes-vous connecté à la bonne base de données, peut-être un problème de droits, un mauvais schéma, etc.? Votre source de données est correctement configurée? Obtenez-vous quelque chose comme " Impossible de se connecter à la source de données " lorsque vous cliquez sur le bouton " Concepteur de requêtes "?

Puisque vous dites que cela fonctionne, mais que vous ne pouvez pas trouvez-le, je suppose que vous n'êtes peut-être pas connecté à votre instance de base de données. Lorsque vous développez votre instance de base de données, puis la programmabilité dans SSMS - vous ne voyez pas du tout votre processus répertorié. Vous pouvez faire un select object_id comme en utilisant les paramètres dont vous avez besoin:

select OBJECT_ID ( '[ database_name . [ schema_name ] . | schema_name . ]   
  object_name' [ ,'object_type' ] )  

Ceci est documenté ici: https: / /docs.microsoft.com/en-us/sql/t-sql/functions/object-id-transact-sql?view=sql-server-2017


0 commentaires

1
votes
  • ou SSMS et SSRS Report Builder s'exécutent sous des informations d'identification différentes

  • ou l'instruction suivante a été exécutée:

  • SQL:

    -- null means that object not exists
    SELECT object_id ('sp_rptPoolAndHottubSchedule')
    

    L'existence de l'objet peut être vérifiée via:

    DENY VIEW DEFINITION ON [sp_rptPoolAndHottubSchedule] TO YourAccout    
    

1 commentaires

Merci, j'ai pu le localiser par object_Id



0
votes

Essayez ce SQL:

select * from sys.procedures 
where name like '%name_of_proc%'

Et vérifiez manuellement comme:

En supposant que vous êtes dans le Détails de l'explorateur d'objets (F7) qui s'affiche la liste des procédures stockées, cliquez sur le bouton Filtres et saisissez le nom (ou le nom partiel).

entrez la description de l'image ici

Si vous ne l'avez toujours pas Vous ne trouvez pas le nom de la procédure stockée alors vous recherchez dans un serveur différent.


2 commentaires

Merci pour la suggestion. J'ai essayé cette méthode et elle n'apparaît pas


Cherchez-vous à corriger la base de données et le nom du serveur sur lesquels vous avez créé des rapports