Avvio stored o funzione in automatico su un server sql

lunedì 03 gennaio 2011 - 14.10

trinity Profilo | Guru

Salve ragazzi,

allora cercherò di spiergarmi nel miglior modo possibile. Io ho questa tabella

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

con i seguenti dati:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

In pratica devo creare una funzione che controllando sempre la data del server appena c'è il passaggio al nuovo anno per esempio 2011, deve avviarsi ed eseguire l'aggiornamento solo dell'anno nelle colonne data. I giorni ed i mesi devono rimanere invariati. NB dove le date non sono presenti troveremo la data standard 01-01-19000 che deve sempre rimanere tale anche al passaggio al nuovo anno.

Ciao e grazie
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

dinoxet Profilo | Senior Member

non puoi fare un
UPDATE che con un agent la fai partire tutti i giorni
questa update conterra un case che confronta year(data) con year(gtdate()) se quest'iltimo è maggiorne scrivi il campo data sommandogli un anno altrimenti solo il campo data?


un idea

DINOXET
__________________________________________
impossible is only a word

trinity Profilo | Guru

Si potrebbe essere una idea quindi la stored o funzione devo inserirla nei processi dell'sql server


Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

alx_81 Profilo | Guru

Ciao,
utilizzando la funzione DATEADD puoi aggiungere l'anno senza toccare il resto della data.
http://msdn.microsoft.com/it-it/library/ms186819.aspx

>Si potrebbe essere una idea quindi la stored o funzione devo inserirla nei processi dell'sql server
se hai un'edizione che supporta il servizio Agent, allora poi fare un processo con uno step di tipo t-sql eseguendo la stored procedure che fa l'update.
Senza controllare ogni giorno, puoi farla partire ogni anno, il primo giorno di gennaio alle 00:00.

--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

trinity Profilo | Guru

sisil 2008, già eseguo un backup ogni giorno in automatico quindi posso farlo...si conoscevo la funzione DateAdd, ma mi chiedo il controllo anzi il confronto di anno tra quello registrato nel db e quello attuale del serve non serve più utilizzando l'Agent, vero?
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

dinoxet Profilo | Senior Member

se fai partire l'agent il giorno 1/1 di ogni anno
non non serve più il controllo
ammesso che tu debba mettere sempre l'anno in corso a quelle date.


DINOXET
__________________________________________
impossible is only a word

trinity Profilo | Guru

Allora ho creato la stored di aggiornamento date.
Ora il server ha l'sql server agent...Per creare il processo che ogni anno al primo giorno eseguo la stored di aggiornamento, devo creare un sotto la directory "Gestione" e poi "Manutenzione" una voce che mi esegue il codice T-sql?
Oppure devo creare un nuovo processo sotto "Sql server agent" e directory "processi"?

Ah ps ho provato a creare un processo e nella prima schermata ossia la scheda generale, mi chiede di scegliere una categoria...quale devo indicare? T-sql non c'è. Ce ne sono parecchie...alllego immagine

698x620 108Kb



Ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

dinoxet Profilo | Senior Member

la categoria è facoltativa puoi passare oltra ed andare sulla parte passaggi dove creerai un passaggio scegliendo come tipo script sql
e da li farai eseguire la tua stored
e poi lo pianifichi come detto


DINOXET
__________________________________________
impossible is only a word

trinity Profilo | Guru

OK ma ho notato che nella pianificazione se indico solo per l'anno (diciamo così) mi dice di mettere ovviamente quando devo eseguire il processo io ho impostato al 1 gennaio 2011 ma non ho visto che dà la possibilità di eseguire in automatico il processo anche nel 2012 e così via...Mica devo impostare sempre la data..

Ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

dinoxet Profilo | Senior Member

fai cosi


664x587 55Kb




DINOXET
__________________________________________
impossible is only a word
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5