EXEC msdb.dbo.sp_send_dbmail con @QUERY va in errore !!!!

martedì 12 giugno 2007 - 08.37

crigon Profilo | Newbie

Ciao a tutti, sono nuovo del forum, non sono un mago di SQL, ma mi arrangio!

Invio ai responsabili di diversi settori dei report quotidiani utilizzando la msdb.dbo.sp_send_dbmail sempre con il parametro @QUERY dove inserisco la query il cui risultato deve essere inviato.

Ora ho l'errore che vedete sotto, e non trovo una soluzione.
Lo eseguo così:

USE SAR_AOL -- il mio db
DECLARE @TITOLO AS VARCHAR(250)
DECLARE @DEST AS VARCHAR(250)
SET @DEST='crigon@sistemi.com'

SELECT @TITOLO = 'TEST RIGON - REPORT-AOL-Controllo AOL '
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'ALERT',
@recipients = @DEST,
@subject = @TITOLO,
@query=N'SET NOCOUNT ON [...] ol resto della query [...]


vi incollo tutto l'errore:
"
Msg 14661, Level 16, State 1, Procedure sp_send_dbmail, Line 476
Query execution failed: Msg 102, Level 15, State 1, Server NTSQL007, Line 4
Incorrect syntax near '='.
Msg 0, Level 11, State 0, Line 0
A severe error occurred on the current command. The results, if any, should be discarded.
"

La query effettivamente è lunghetta, circa 415 righe ...

grazie in anticipo per l'aiuto

ciao
Cristiano

lbenaglia Profilo | Guru

>vi incollo tutto l'errore:
>"
>Msg 14661, Level 16, State 1, Procedure sp_send_dbmail, Line
>476
>Query execution failed: Msg 102, Level 15, State 1, Server NTSQL007,
>Line 4
>Incorrect syntax near '='.
>Msg 0, Level 11, State 0, Line 0
>A severe error occurred on the current command. The results,
>if any, should be discarded.
>"
>
>La query effettivamente è lunghetta, circa 415 righe ...

Ciao Cristiano,

Il messaggio è chiarissimo, c'è un errore di sintassi vicino all' '='.
Certo che 415 righe di query "forse" sono un po' eccessive, non trovi?
Non riesci a semplificarla, magari incapsulandola in una stored procedure?

>grazie in anticipo per l'aiuto
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

crigon Profilo | Newbie

Ciao Lorenzo,
innanzitutto Grazie per la tua velocità

>Il messaggio è chiarissimo, c'è un errore di sintassi vicino
>all' '='.
Ho trovato l'errore, in effetti era vicino ad un uguale, ma non un uguale "significativo"

mi spiego incollandoti l'inizio della QRY:


print ''=====================================''
print ''= E-SOLVER ===========================''
print ''=====================================''
SELECT CASE
WHEN (DataModifica > .... ecc ecc

'
essendo il valore di una variabile, tutto era tra i singoli apici, ed erano raddoppiati dove serviva una stringa.

Il mio errore era una banalità, infatti l'uguale che dava errore era uno di quelli utilizzati come separatore, perchè avevo sbagliato io il "numero" di apici (con il trova e sostituisci ne avevo messo un paio di troppo)

non lo trovavo perchè io testavo sempre la QRY da sola, e mai i con le print, che uso per rendere leggibile ai responsabili di settore i risultati !!

ok, sono un imbecille!!!

>Certo che 415 righe di query "forse" sono un po' eccessive, non
>trovi?
>Non riesci a semplificarla, magari incapsulandola in una stored
>procedure?

Ora ci provo, ma in realtà è la stessa QRY ripetuta per ogni settore, e poi ..... è un lavoro che ha fatto il mio capo e mi ha detto di manutenere, io lo avrei fatto diversamente, ma .. vieni tu a dirgli che non va bene!!!

comunque GRAZIE MILLE DELL'AIUTO

>Ciao!
ciao e scusa per il post da incompetente!!
Cristiano
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5