Oddly enough, I just looked up the steps to execution of a query in the SQL Server 2008 Internals book (highly recommended, by the way). The first step is Parsing both checks syntax, and builds a query tree for the optimizer to use later on. The second step is binding, and this is where you usually get the error message about a column name not being able to be bound. I am pretty sure parsing affects a whole batch, but binding appears to be statement specific, with the exception that the first failure to bind appears to fail the rest of the batch. I only did a little experimentation with it, so I can not call myself an authority.