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.