7
votes

sp_send_dbmail n'enverra pas les résultats de la requête

J'ai essayé chaque avenue sur chaque pute forum suggéré, mais en vain! Besoin d'envoyer des résultats de SQLPERF (logspace), qui ont été stockés dans une table, via sp_send_dbmail au destinataire.

Étape 2 du travail est où une défaillance se produit. S'il vous plaît aider! xxx


1 commentaires

Avez-vous remarqué la citation de clôture manquante de @Query ?


3 Réponses :


10
votes

Vous ne pouvez pas interroger à partir d'une table TEMP à l'aide du courrier de la base de données. La session que vous avez utilisée pour créer la table Temp (étape 1 de votre travail que je suppose) a été fermée et une nouvelle session a commencé lorsque l'étape 2 a commencé. Parce que la session a été fermée, la table a été supprimée (même si la table n'a pas été abandonnée, c'est une nouvelle session, vous n'avez pas accès à la table des autres sessions Temps).

Créez une table physique et utilisez-la (dans la base de données TEMPDB, soit dans votre base de données) ou mettez le code qui crée la sortie dans la @Quisery avec le Select * à partir de #tempforlogspace à la fin (une procédure stockée sera beaucoup plus facile à traiter dans ce cas).


0 commentaires

5
votes

Je sais que ce fil est un peu vieux, mais au cas où quelqu'un trébuche à ce sujet, le problème est comme M. M.Denny a déclaré que SP_SEND_DBMAIL La procédure stockée se déroule dans sa propre session, mais vous pouvez le contourner en utilisant une table temporaire globale ( Préfixer la table avec des panneaux de deux livres (##)).


0 commentaires

0
votes

Utilisez simplement une table Temp globale comme ## temp_table . Cette table sera accessible par toutes les sessions et restera dans la base de données jusqu'à ce que toutes les sessions qui se réfèrent ont été fermées.

Tables temporaires locales et globales dans SQL Server < / p>


0 commentaires