• I like to practice "defensive" programming and so I want the system to fail if I accidentally hit "execute".

    Just having CREATE prevents this accidentally replacing the original version unless I deliberately change it to say ALTER.

    Similarly, the comments should only be in the body of the Stored Procedure so that, if the original source file gets lost, they are included in the copy of the Stored Procedure that is actually running (a good reason not to encrypt the SPs).

    In my experience, programmers are much more likely to update comments that are embedded in the code than to update notes that are in a separate file and this even applies to the original source code file. Encrypting the SP can force the programmer to use the source code file but there is still the risk that the source code file will get lost or might not be the same version as the one actively running. Thus, I update the live code and keep backups of the before and after versions.

    This is not the way it "should" be done, but it is more reliable in a small environment where there is no-one with the time and authority to enforce proper standards.