Eu descobri que você pode usar uma abordagem muito não detalhada e direta para verificar a existência de vários objetos do SQL Server desta maneira:
IF OBJECTPROPERTY (object_id('schemaname.scalarfuncname'), 'IsScalarFunction') = 1
IF OBJECTPROPERTY (object_id('schemaname.tablefuncname'), 'IsTableFunction') = 1
IF OBJECTPROPERTY (object_id('schemaname.procname'), 'IsProcedure') = 1
Isso se baseia na função OBJECTPROPERTY, disponível no SQL 2005+. O artigo do MSDN pode ser encontrado aqui .
A função OBJECTPROPERTY usa a seguinte assinatura:
OBJECTPROPERTY ( id , property )
Você passa um valor literal para o parâmetro de propriedade, designando o tipo de objeto que está procurando. Há uma lista enorme de valores que você pode fornecer.