SQL Batches and the GO command: which parts of my script failed?
After sufficient testing, I think I've answered all my questions:


  
  If an error refers to Line 6, is that from the top of the script? Or from the top of the batch? (after the prior GO)
  


Errors are reported from the top of the entire script, not from the top of the batch. 

One caveat: errors point to the line that starts the statement containing the error, even if the error itself is on a later line. For example, if badTableName doesn't exist, the following will report an error on line 12, not line 13:

SELECT *                 --line 12
FROM badTableName        --line 13



  
  If an error is encountered, does it roll back only the statements in that batch? (between the GOs)? 
  


Yes. If an error is encountered, that entire batch (between the GOs) is rolled back.  


  
  Would the order of the statements within the batch have mattered, if one of them errored out? 
  


No, the order of commands within that block would not have mattered. 


  
  The order of the output leads me to believe that the first sp_rename succeeded (with the "caution" output), and the second failed with the error. 
  


After some testing, this appears to be correct. The Caution is only output when sp_rename completes successfully. 


  
  The failure of the prior batches doesn't prevent later batches from running, correct? 
  


Correct. Other batches are treated independently, and will be run.