Ultima rulare a unei proceduri stocate

Configurare noua (How To)

Situatie

Pentru cazurile in care avem nevoie sa stim cand anume a fost rulata ultima oara o anumita procedura am creat o procedura stocata. Aceasta primeste ca parametru numele procedurii cautate si returneaza ultima data cand a fost executata, dar si ultima data cand serverul de sql a fost restartat.

De ce este nevoie sa stim si cand a fost restartat ultima data serverul de sql? Pentru ca, in cazul in care de la ultimul restart de sql, procedura cautata nu a fost rulata niciodata, nu vom avea o data ultima de rulare pentru procedura cautata, si astfel, nu vom sti ca nu a fost rulata niciodata de la ultimul restart de sql server.

Solutie

alter procedure BD_LastTimeProcExec_prc
@ProcName varchar(max)

as

declare @LastTimeServerRestart datetime

select @LastTimeServerRestart = crdate from sys.sysdatabases where name = ‘tempdb’

select
db_name() [database name]
,[schema name] = SCHEMA_NAME([schema_id])
,o.name
,ps.last_execution_time,
@LastTimeServerRestart as LastTimeServerRestart
from sys.dm_exec_procedure_stats ps
inner join
sys.objects o
ON ps.object_id = o.object_id
where o.type = ‘P’
and o.name = @ProcName
order by
ps.last_execution_time

Tip solutie

Permanent
Etichetare:

Voteaza

(28 din 50 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?