I think the difference is really simple.
ALTER TABLE: you can specify whether you are adding a column or changing a column. If adding one, it adds it to the end of the table, if changing a column it finds the column and changes it.
ALTER PROCEDURE: if you are just changing part of a procedure, how do you tell it where the change goes?
CREATE PROCEDURE myproc
AS
SELECT lname, fname, mi
FROM mytable
WHERE lname = 'smith'
GO
now I want to change the order of that select and get the first name, mi, and last name. How do I tell SQL Server to change JUST the select line? The code isn't written with line numbers, so I can't say something like ALTER PROCEDURE ALTER LINE 1 SELECT fname, mi, lname.
Since I can't tell SQL Server the specific part I need to change, I have to resubmit the entire thing.
-SQLBill