Una query che uso da anni ha improvvisamente iniziato a generare un errore strano. Quando ho apportato una modifica estetica alla query (1 + x anziché x + 1), l'errore non si verifica più. Il proc memorizzato che si sta lamentando non esiste più nemmeno sul server!Perché questo errore di sybase va via con qualsiasi modifica alla query?
Sono molto curioso se qualcuno ha qualche idea su quale sia il problema e perché questo "cambiamento" lo risolva?
La query prima:
UPDATE SOME_DB..JOB_QUEUE
SET ERROR_COUNT = ERROR_COUNT + 1,
JOB_START_TIME = '{1}'
WHERE JOB_ID = {0}
La query dopo:
UPDATE SOME_DB..JOB_QUEUE
SET ERROR_COUNT = 1 + ERROR_COUNT,
JOB_START_TIME = '{1}'
WHERE JOB_ID = {0}
L'errore getta:
Sybase.Data.AseClient.AseException: Procedure sp_net_dblatency expects parameter @heartbeat, which was not supplied.
Mi chiedevo se qualcuno ha qualche idea che cosa sta succedendo Qui?
Modifica. Ecco il proc memorizzato.
create procedure sp_net_dblatency
@heartbeat datetime
as
update DATABASE_1234..LATENCY set [email protected], END_UTC_TIME=getutcdate() where DATABASE_NAME=db_name()
if (@@ROWCOUNT = 0)
insert DATABASE_1234..LATENCY (DATABASE_NAME, START_UTC_TIME, END_UTC_TIME) values (db_name(), @heartbeat, getutcdate())
Forse la tua sp è stata compromessa e un parametro @hearbeat inserito nel codice. La tua semplice correzione ha causato il suo ri-complimento. –
Lo sp usato per esistere e @heartbeat era un parametro. Ma lo SP è stato cancellato mesi fa. – anthonybell
Sono stati rimossi anche tutti i sinonimi associati alla sp_netiq_dblatency? – xQbert