Visualizzazione post con etichetta Programmazione. Mostra tutti i post
Visualizzazione post con etichetta Programmazione. Mostra tutti i post

mercoledì 9 marzo 2011

Come rimuovere tutte le Stored Procedure da un database SQL Server?

Come rimuovere tutte le Stored Procedure da un database SQL Server?

In questi giorni sto lavorando sui database SQL Server che fanno da back-end ai nostri web services e ne approfitto per fare un po’ manutenzione straordinaria. Stamattina mi è capitato di dover cancellare tutte le Stored Procedure di un database e ho scovato questa routine che mi ha fatto risparmiare un mucchio di tempo
1
2
3
4
5
6
7
8
9
10
11
12
13
declare @procName varchar(500)
declare cur cursor
 
for select [name] from sys.objects where type = 'p'
open cur
fetch next from cur into @procName
while @@fetch_status = 0
begin
    exec('drop procedure ' + @procName)
    fetch next from cur into @procName
end
close cur
deallocate cur
La tecnica è quella di sfruttare la tabella di sistema sys.objects che elenca tutti gli oggetti contenuti nel database. Le Stored Procedure hanno tutte type = ‘P’ per cui è facile individuarle. A questo punto ci sono due possibilità: memorizzarne i nomi in una tabella temporanea per poi lanciare un loop che le cancelli una per una, oppure usare un cursore ed eseguire le cancellazioni con la funzione EXEC. La nostra routine usa il secondo approccio, senz’altro più performante.

Related Posts Plugin for WordPress, Blogger...