Descubrí que puede usar un enfoque muy detallado y directo para verificar la existencia de varios objetos de SQL Server de esta manera:
IF OBJECTPROPERTY (object_id('schemaname.scalarfuncname'), 'IsScalarFunction') = 1
IF OBJECTPROPERTY (object_id('schemaname.tablefuncname'), 'IsTableFunction') = 1
IF OBJECTPROPERTY (object_id('schemaname.procname'), 'IsProcedure') = 1
Esto se basa en la función OBJECTPROPERTY que está disponible en SQL 2005+. El artículo de MSDN se puede encontrar aquí .
La función OBJECTPROPERTY utiliza la siguiente firma:
OBJECTPROPERTY ( id , property )
Usted pasa un valor literal al parámetro de propiedad, designando el tipo de objeto que está buscando. Hay una lista masiva de valores que puede proporcionar.