• I wonder if some of the confusion is from people transitioning from Oracle PL/SQL and other compiled languages where the language is much more sophisticated and clear.

    CREATE/BEGIN/END have clear syntactical and semantic roles in PL/SQL. In fact, the END statement includes the name of the procedure or function that is being defined.

    SUB/END SUB and FUNCTION/END FUNCTION in VB.NET are also very clear.

    T-SQL still seems like a toy language compared to others for this and some other reasons.

    --Peter