No estoy seguro de por qué SSMS no tiene en cuenta el orden de ejecución, pero simplemente no lo hace. Esto no es un problema para las bases de datos pequeñas, pero ¿qué pasa si su base de datos tiene 200 objetos? En ese caso, el orden de ejecución importa porque no es realmente fácil revisar todos estos.
Para los scripts no ordenados generados por SSMS, puede seguir
a) Ejecutar el script (se insertarán algunos objetos, otros no, habrá algunos errores)
b) Eliminar todos los objetos del script que se han agregado a la base de datos
c) Regrese a a) hasta que finalmente se ejecute todo
La opción alternativa es utilizar una herramienta de terceros como ApexSQL Script o cualquier otra herramienta ya mencionada en este hilo (paquete de herramientas SSMS, Red Gate y otras).
Todos estos se ocuparán de las dependencias por usted y le ahorrarán aún más tiempo.