Se si esegue la procedura DROP e CREA, si perderanno le impostazioni di sicurezza. Ciò potrebbe infastidire il tuo DBA o interrompere del tutto l'applicazione.
Quello che faccio è creare una stored procedure banale se non esiste ancora. Successivamente, è possibile ALTERARE la procedura memorizzata a proprio piacimento.
IF object_id('YourSp') IS NULL
EXEC ('create procedure dbo.YourSp as select 1')
GO
ALTER PROCEDURE dbo.YourSp
AS
...
In questo modo, le impostazioni di sicurezza, i commenti e altri meta deta sopravviveranno alla distribuzione.
Questo funzionerà, ma rimuove tutte le modifiche di sicurezza applicate alla stored procedure. – Andomar
Anche le modifiche di sicurezza dovrebbero far parte degli script. In questo modo, verrà adeguatamente documentato. Questo è l'approccio giusto. –
@EnderWiggin Tranne se l'implementazione della sicurezza non è nota in fase di progettazione ... Cosa succede se lo sviluppatore non sa quali utenti necessitano dei diritti di esecuzione? –