600 messaggi dal 18 febbraio 2002
www.dimsolutions.it
Dovrei lanciare ad intervalli regolari una Stored Procedure che cancella alcuni dati.

Mi è venuto in mente un Job in SQL SErver 2008.

Qualcuno ha qualche guida/tutorial su come realizzare ciò?

grazie

Telesoccorso Lineaperta: Servizi di Telesoccorso
1.024 messaggi dal 19 dicembre 2003
Contributi | Blog
Da SSMS accedi alla cartella SQL Server Agent -> Jobs e da qui fai click con il tasto destro su New Job. Nella prima schermata (General) sono le informazioni "di base" sul job che stai creando; il secondo tab (Steps) è il cuore dell'attività. Selezionando il tasto New crei i singoli step (possono essere più di uno) che faranno parte del Job (ad esempio BACKUP DATABASE... o la tua procedura da schedulare); il successivo tab (Schedules) serve ad indicare a SQL Agent quando è che vuoi eseguire tale job mentre nell'ultimo tab (Notifications) hai la possibilità di segnalare l'avvenuta esecuzione (o eventualmente un problema occorso) del job che stai creando.
A dire il vero il tutto è più facile a farsi che a spiegarsi. Naviga a vista dove ti ho detto e scoprirai che c'è ben poco da sapere

Bye

Luca Bianchi
Microsoft MVP - SQL Server
600 messaggi dal 18 febbraio 2002
www.dimsolutions.it
E' presente anche in SQL Server 2008 Express Edition e Web Edition?

Telesoccorso Lineaperta: Servizi di Telesoccorso
1.024 messaggi dal 19 dicembre 2003
Contributi | Blog
L'assenza di SQL Server Agent è una delle limitazioni della versione Express. Puoi ovviare con il Task Scheduler del sistema operativo o con uno schedulatore di terze parti. In realtà puoi utilizzare anche il Service Broker come indicato qui

http://blogs.msdn.com/b/rogerwolterblog/archive/2006/04/13/575974.aspx

ma si tratta di una soluzione molto teorica e poco pratica, soprattutto se raffrontato alle alternative esistenti.

Bye

Luca Bianchi
Microsoft MVP - SQL Server
600 messaggi dal 18 febbraio 2002
www.dimsolutions.it
grazie... anche la versione SQL Server 2008 Web Edition che tu sappia ha questa limitazione?

Come posso dal Task Scheduler di Windows richiamare una SP di SQL Server?

Telesoccorso Lineaperta: Servizi di Telesoccorso
1.024 messaggi dal 19 dicembre 2003
Contributi | Blog
No, la web non ha questa limitazione.
Per schedulare qualunque comando dal task scheduler devi prima fare in modo che lo stesso sia eseguibile da Windows. Per eseguire un comando T-SQL dal sistema operativo si usa il comando SQLCMD.exe (o i più vecchi e obsoleti isql.exe/osql.exe).
Come prima cosa crea un file di testo e salvalo con estensione .sql (in realtà puoi dare l'estensione che preferisci) al cui interno inserirai il comando da far eseguire a SQL Server. Ad esempio

BACKUP DATABASE nomedb TO DISK = '\\MyServer\MyFolder\nomedb.bak' WITH CHECKSUM

A questo punto non devi far altro che creare un secondo file, questa volta con estensione .cmd che conterrà il comando

SQLCMD -S Server -E -i "file_di_prima.sql"

In alternativa potresti definire direttamente il file cmd al cui interno scrivere direttamente

SQLCMD -S Server -E -Q"BACKUP DATABASE eccetera"

ma utilizzare un file di input è sicuramente più flessibile e gestibile. La sintassi di SQLCMD la trovi a partire da questo link

http://technet.microsoft.com/it-it/library/ms180944.aspx

Bye

Luca Bianchi
Microsoft MVP - SQL Server
600 messaggi dal 18 febbraio 2002
www.dimsolutions.it
Grazie Luca,
quella che mi hai proposto potrebbe essere un'ottima soluzione.

Comunque per il discorso Web Edition ho sottomano la versione installata ma non riesco a trovare la cartella che mi hai indicato SQL Server Agent -> Jobs.

SQL Server Agent l'ho avviato come servizio.

Forse va anche installato come componente aggiuntivo nell'installazione di SQL Server?

Telesoccorso Lineaperta: Servizi di Telesoccorso
1.024 messaggi dal 19 dicembre 2003
Contributi | Blog
Se l'hai avviato come servizio è la prova provata che il servizio esiste (non è un componente aggiuntivo).
Se non lo vedi nell'interfaccia grafica significa che stai utilizzando SSMSExpress. Utilizza una versione di SSMS non express e troverai anche la cartella SQL Agent.

Bye
Modificato da l.bianchi il 25 gennaio 2011 12.33 -

Luca Bianchi
Microsoft MVP - SQL Server

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.