Adding these checks as mandatory would be breaking behaviour, and there
may be occasions where they are not desireable. Therefore there should
be an option SET STRICT_CHECKS ON. When this setting is in effect, processing
of CREATE PROCEDURE, CREATE TRIGGER etc would result in errors for the
conditions noted above. (In fact, it would be perfectly be OK to let it
suffice with warnings.) The warnings/errors would not be produced when
the module is compiled by the optimizer to construct a query plan.
There should be an option in Mgmt Studion to have this option on by
default.
I have seen the idea floated that WITH SCHEMABINDING would be added as an
option for CREATE PROCEDURE. While this can be worthwhile, it does *not*
solve the problems listed above. In practice, you do need the flexibiliy
of SQL Server: be able to drop and recreate a table. My aim here is not
to ensure that the database remains correct. My aim is to reduce
development time by finding stupid sloppy typiing errors early.