Currently we use separate a drop statements for each stored procedure in the script file:
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N\'[
DECLARE @sql VARCHAR(MAX) SET @sql='' SELECT @sql=@sql+'drop procedure ['+name +'];' FROM sys.objects WHERE type = 'p' AND is_ms_shipped = 0 exec(@sql);