O que você faz no SQL Server para CREATE OR ALTER?

O ano é 2009 e o SQL Server não possui CREATE OR ALTER / REPLACE. Isto é o que eu faço em vez disso.

IF EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.ROUTINES 
           WHERE ROUTINE_NAME = 'SynchronizeRemoteCatalog' 
             AND ROUTINE_SCHEMA = 'dbo' 
             AND ROUTINE_TYPE = 'PROCEDURE')
 EXEC ('DROP PROCEDURE dbo.SynchronizeRemoteCatalog')

CREATE PROCEDURE dbo.SynchronizeRemoteCatalog
AS BEGIN
    -- body
END

Para gatilhos, você precisa se apoiar nas visualizações de sistema proprietárias.

Esta é a convenção mais aceita nesse meio tempo?

EDITAR: Como n8wrl sugeriu, opalavra oficial sugere que esse recurso não seja uma prioridade alta. Daí a questão.

questionAnswers(14)

yourAnswerToTheQuestion