well, since you can't have a GO in the middle of a stored proc (at least not that I'm aware of... I've always used the GO at the end, signifying the end of the SP) it's kind of moot... but in these kinds of situations, I'll reach for a transaction... begin a transaction, do my work commit or rollback as needed, move on to the next operation.

Oddly, SQL Server does support the try/catch methodology to help...
http://msdn.microsoft.com/en-us/libr...=sql.105).aspx

Code:
BEGIN TRY
    BEGIN TRANSACTION
    -- Do Table 1 work
    COMMIT TRANSACTION
END TRY
BEGIN CATCH
    ROLLBACK TRANSACTION
END CATCH;

BEGIN TRY
    BEGIN TRANSACTION
    -- Do Table 2 work
    COMMIT TRANSACTION
END TRY
BEGIN CATCH
    ROLLBACK TRANSACTION
END CATCH;

SELECT Idea FROM Sample WHERE You='See the pattern';
Be sure to read the documentation at the link... there's going to be some relevant gotchas in there concerning transactions, try-catch,and DDL, which may be appropo ...


-tg